def processador_nfe(self): self.ensure_one() processador = ProcessadorNFe() processador.estado = self.estado if self.certificado_id: processador.certificado = \ self.certificado_id.certificado_nfe() return processador
def test_cancelar_nota_20(cert_info): from pysped.nfe import ProcessadorNFe from pysped.nfe.webservices_flags import * p = ProcessadorNFe() p.versao = u'2.00' p.estado = u'SP' p.certificado.arquivo = cert_info.arquivo p.certificado.senha = cert_info.senha p.salvar_arquivos = True p.contingencia_SCAN = False p.caminho = u'' # # O retorno de cada webservice é um dicionário # estruturado da seguinte maneira: # { TIPO_DO_WS_EXECUTADO: { # u'envio' : InstanciaDaMensagemDeEnvio, # u'resposta': InstanciaDaMensagemDeResposta, # } # } # processo = p.cancelar_nota(chave_nfe=u'35100411111111111111551010000000271123456789', numero_protocolo=u'135100018751878', justificativa=u'Somente um teste de cancelamento') print processo.envio.xml print print processo.resposta.xml print assert processo.resposta.reason
def xml_send(self, cr, uid, ids, inv, ei_obj, cert_name, context=None): proc_nfe = ProcessadorNFe() proc_nfe.ambiente = 1 if inv.company_id.ei_environment == 'production' else 2 proc_nfe.versao = '3.10' proc_nfe.estado = inv.company_id.partner_id.l10n_br_city_id.state_id.code proc_nfe.certificado.senha = inv.company_id.nfe_a1_password proc_nfe.certificado.arquivo = cert_name proc_nfe.salvar_arquivos = False for processo in proc_nfe.processar_notas([ei_obj]): result = { 'action': 'send', 'ei_status': 'failed', 'message': processo.resposta.cStat.valor + '-' + processo.resposta.xMotivo.valor, 'ei_access_key': ei_obj.chave} if processo.webservice == 1: for prot in processo.resposta.protNFe: result['message'] = prot.infProt.cStat.valor + '-' + prot.infProt.xMotivo.valor if prot.infProt.cStat.valor in ('100', '150'): result['ei_protocol'] = prot.infProt.nProt.valor result['ei_status'] = 'confirmed' result['ei_date'] = prot.infProt.dhRecbto.valor result['xml_send'] = ei_obj.xml result['ei_image'] = proc_nfe.danfe.conteudo_pdf result['ei_code'] = inv.internal_number elif processo.resposta.cStat.valor in ('100', '150'): result['ei_status'] = 'confirmed' result['ei_date'] = processo.resposta.protNFe.infProt.dhRecbto.valor result['ei_protocol'] = processo.resposta.protNFe.infProt.nProt.valor result['xml_send'] = ei_obj.xml result['ei_code'] = inv.internal_number return result
def xml_inactivate(self, cr, uid, ids, inv, ei_obj, cert_name, context=None): proc_nfe = ProcessadorNFe() proc_nfe.ambiente = 1 if inv.company_id.ei_environment == 'production' else 2 proc_nfe.versao = '3.10' proc_nfe.estado = inv.company_id.partner_id.l10n_br_city_id.state_id.code proc_nfe.certificado.senha = inv.company_id.nfe_a1_password proc_nfe.certificado.arquivo = cert_name proc_nfe.salvar_arquivos = False processo = proc_nfe.inutilizar_nota( ambiente=ei_obj['ambiente'], codigo_estado=ei_obj['UF'], ano=ei_obj['ano'], cnpj=ei_obj['CNPJ/CPF'], serie=ei_obj['serie'], numero_inicial=ei_obj['numero_inicial'], numero_final=ei_obj['numero_final'], justificativa=ei_obj['justificativa']) if processo.resposta.infInut.cStat.valor == '102': result = { 'action': 'inactivate', 'message': processo.resposta.infInut.xMotivo.valor, 'ei_status': 'inactive'} else: msg = processo.resposta.infInut.cStat.valor + ' - ' + processo.resposta.xMotivo.valor result = { 'action': 'inactivate', 'message': msg } return result
def test_consultar_situacao_20(cert_info): from pysped.nfe import ProcessadorNFe from pysped.nfe.webservices_flags import * p = ProcessadorNFe() p.versao = u'2.00' p.estado = u'SP' p.certificado.arquivo = cert_info.arquivo p.certificado.senha = cert_info.senha p.salvar_arquivos = True p.contingencia_SCAN = False p.caminho = u'' # # O retorno de cada webservice é um dicionário # estruturado da seguinte maneira: # { TIPO_DO_WS_EXECUTADO: { # u'envio' : InstanciaDaMensagemDeEnvio, # u'resposta': InstanciaDaMensagemDeResposta, # } # } # processo = p.consultar_servico() print processo.envio.xml print print processo.resposta.xml print assert processo.resposta.reason != 'Forbidden'
def test_inutilizar_notas_20(cert_info): from pysped.nfe import ProcessadorNFe from pysped.nfe.webservices_flags import * p = ProcessadorNFe() p.versao = u'2.00' p.estado = u'SP' p.certificado.arquivo = cert_info.arquivo p.certificado.senha = cert_info.senha p.salvar_arquivos = True p.contingencia_SCAN = False p.caminho = u'' # # O retorno de cada webservice é um dicionário # estruturado da seguinte maneira: # { TIPO_DO_WS_EXECUTADO: { # u'envio' : InstanciaDaMensagemDeEnvio, # u'resposta': InstanciaDaMensagemDeResposta, # } # } # processo = p.inutilizar_nota(cnpj=u'11111111111111', serie=u'101', numero_inicial=18, justificativa=u'Testando a inutilização de NF-e') print processo.envio.xml print print processo.resposta.xml print print "NOTA UNICA" assert processo.resposta.reason # # Inutilizar uma faixa de numeração # processo = p.inutilizar_nota(cnpj=u'11111111111111', serie=u'101', numero_inicial=18, numero_final=28, justificativa=u'Testando a inutilização de NF-e') print processo.envio.xml print print processo.resposta.xml print print "FAIXA DE NOTAS" assert processo.resposta.reason
def __processo(company): p = ProcessadorNFe() p.ambiente = int(company.nfe_environment) p.estado = company.partner_id.l10n_br_city_id.state_id.code p.certificado.stream_certificado = base64.decodestring(company.nfe_a1_file) p.certificado.senha = company.nfe_a1_password p.salvar_arquivos = False p.contingencia_SCAN = False p.caminho = company.nfe_export_folder return p
def xml_cancel(self, cr, uid, ids, inv, ei_obj, cert_name, context=None): proc_nfe = ProcessadorNFe() proc_nfe.ambiente = 1 if inv.company_id.ei_environment == 'production' else 2 proc_nfe.versao = '3.10' proc_nfe.estado = inv.company_id.partner_id.l10n_br_city_id.state_id.code proc_nfe.certificado.senha = inv.company_id.nfe_a1_password proc_nfe.certificado.arquivo = cert_name proc_nfe.salvar_arquivos = False processo = proc_nfe.enviar_lote_cancelamento(lista_eventos=[ei_obj]) result = { 'action': 'cancel', 'message': processo.resposta.xMotivo.valor } for prot in processo.resposta.retEvento: result['message'] = prot.infEvento.cStat.valor + '-' + processo.resposta.xMotivo.valor if prot.infEvento.cStat.valor == '135': result.update({'ei_status': 'cancelled'}) return result
def xml_correction_letter(self, cr, uid, ids, inv, ei_obj, cert_name, context=None): proc_nfe = ProcessadorNFe() proc_nfe.ambiente = 1 if inv.company_id.ei_environment == 'production' else 2 proc_nfe.versao = '3.10' proc_nfe.estado = inv.company_id.partner_id.l10n_br_city_id.state_id.code proc_nfe.certificado.senha = inv.company_id.nfe_a1_password proc_nfe.certificado.arquivo = cert_name proc_nfe.salvar_arquivos = False processo = proc_nfe.enviar_lote_cce(lista_eventos=[ei_obj]) if processo.resposta.cStat.valor == '128': result = { 'action': 'correction_letter', 'message': processo.resposta.xMotivo.valor } else: result = { 'action': 'correction_letter', 'message': '%s - %s' % ( processo.resposta.cStat.valor, processo.resposta.xMotivo.valor) } return result
# Você deve ter recebido uma cópia da GNU Library General Public License # juntamente com este programa. Caso esse não seja o caso, acesse: # <http://www.gnu.org/licenses/> # from __future__ import division, print_function, unicode_literals from os.path import abspath, dirname from pysped.nfe import ProcessadorNFe FILE_DIR = abspath(dirname(__file__)) if __name__ == '__main__': p = ProcessadorNFe() p.estado = 'RN' #p.certificado.arquivo = 'certificado.pfx' #p.certificado.senha = 'senha' # # arquivo 'certificado_caminho.txt' deve conter o caminho para o 'certificado.pfx' # p.certificado.arquivo = open(FILE_DIR+'/certificado_caminho.txt').read().strip() # # arquivo 'certificado_senha.txt' deve conter a senha para o 'certificado.pfx' # p.certificado.senha = open(FILE_DIR+'/certificado_senha.txt').read().strip()
# # # ATENÇÃO! # # Em todas as consultas que eu tentei, a RFB sempre me diz que não # há nenhuma nota emitida para o CNPJ consultado, mesmo em ambiente de produção. # Isso mesmo quando na resposta a tag indCont retorna 1, ou seja, # dizendo que ainda há notas a serem consultadas... # Por isso mesmo, não criei nenhuma tratativa das notas retornadas na resposta, # então, se alguém conseguir uma resposta com dados, por favor, me avise, sim? # # if __name__ == '__main__': p = ProcessadorNFe() p.versao = '2.00' p.estado = 'SP' #p.certificado.arquivo = 'certificado.pfx' #p.certificado.senha = 'senha' # # arquivo 'certificado_caminho.txt' deve conter o caminho para o 'certificado.pfx' # p.certificado.arquivo = open(FILE_DIR + '/certificado_caminho.txt').read().strip() # # arquivo 'certificado_senha.txt' deve conter a senha para o 'certificado.pfx' # p.certificado.senha = open(FILE_DIR +
# juntamente com este programa. Caso esse não seja o caso, acesse: # <http://www.gnu.org/licenses/> # from __future__ import division, print_function, unicode_literals from os.path import abspath, dirname from pysped.nfe import ProcessadorNFe from pysped.nfe.webservices_flags import * FILE_DIR = abspath(dirname(__file__)) if __name__ == '__main__': p = ProcessadorNFe() p.versao = '2.00' p.estado = 'SP' #p.certificado.arquivo = 'certificado.pfx' #p.certificado.senha = 'senha' # # arquivo 'certificado_caminho.txt' deve conter o caminho para o 'certificado.pfx' # p.certificado.arquivo = open(FILE_DIR+'/certificado_caminho.txt').read().strip() # # arquivo 'certificado_senha.txt' deve conter a senha para o 'certificado.pfx' # p.certificado.senha = open(FILE_DIR+'/certificado_senha.txt').read().strip()
# juntamente com este programa. Caso esse não seja o caso, acesse: # <http://www.gnu.org/licenses/> # from __future__ import division, print_function, unicode_literals from os.path import abspath, dirname from pysped.nfe import ProcessadorNFe from pysped.nfe.webservices_flags import * FILE_DIR = abspath(dirname(__file__)) if __name__ == "__main__": p = ProcessadorNFe() p.versao = "2.00" p.estado = "SP" # p.certificado.arquivo = 'certificado.pfx' # p.certificado.senha = 'senha' # # arquivo 'certificado_caminho.txt' deve conter o caminho para o 'certificado.pfx' # p.certificado.arquivo = open(FILE_DIR + "/certificado_caminho.txt").read().strip() # # arquivo 'certificado_senha.txt' deve conter a senha para o 'certificado.pfx' # p.certificado.senha = open(FILE_DIR + "/certificado_senha.txt").read().strip()
# -*- coding: utf-8 -*- from pysped.nfe import ProcessadorNFe from pysped.nfe.webservices_flags import * from os.path import abspath, dirname FILE_DIR = abspath(dirname(__file__)) if __name__ == '__main__': p = ProcessadorNFe() p.versao = u'2.00' p.estado = u'SP' # arquivo 'certificado_caminho.txt' deve conter o caminho para o 'certificado.pfx' p.certificado.arquivo = open(FILE_DIR+'/certificado_caminho.txt').read().strip() # arquivo 'certificado_senha.txt' deve conter a senha para o 'certificado.pfx' p.certificado.senha = open(FILE_DIR+'/certificado_senha.txt').read().strip() p.salvar_arquivos = True p.contingencia_SCAN = False p.caminho = u'' # # O retorno de cada webservice é um dicionário # estruturado da seguinte maneira: # { TIPO_DO_WS_EXECUTADO: { # u'envio' : InstanciaDaMensagemDeEnvio, # u'resposta': InstanciaDaMensagemDeResposta, # } # } # processo = p.cancelar_nota(chave_nfe=u'35100411111111111111551010000000271123456789', numero_protocolo=u'135100018751878',
# -*- coding: utf-8 -*- from pysped.nfe import ProcessadorNFe from pysped.nfe.webservices_flags import * from os.path import abspath, dirname FILE_DIR = abspath(dirname(__file__)) if __name__ == '__main__': p = ProcessadorNFe() p.versao = u'1.10' p.estado = u'SP' # arquivo 'certificado_caminho.txt' deve conter o caminho para o 'certificado.pfx' p.certificado.arquivo = open(FILE_DIR+'/certificado_caminho.txt').read().strip() # arquivo 'certificado_senha.txt' deve conter a senha para o 'certificado.pfx' p.certificado.senha = open(FILE_DIR+'/certificado_senha.txt').read().strip() p.salvar_arquivos = True p.contingencia_SCAN = False p.caminho = u'' # # O retorno de cada webservice é um dicionário # estruturado da seguinte maneira: # { TIPO_DO_WS_EXECUTADO: { # u'envio' : InstanciaDaMensagemDeEnvio, # u'resposta': InstanciaDaMensagemDeResposta, # } # } # processo = p.consultar_servico()
# Você deve ter recebido uma cópia da GNU Library General Public License # juntamente com este programa. Caso esse não seja o caso, acesse: # <http://www.gnu.org/licenses/> # from __future__ import division, print_function, unicode_literals from os.path import abspath, dirname from pysped.nfe import ProcessadorNFe FILE_DIR = abspath(dirname(__file__)) if __name__ == '__main__': p = ProcessadorNFe() p.versao = '2.00' p.estado = 'SP' #p.certificado.arquivo = 'certificado.pfx' #p.certificado.senha = 'senha' # # arquivo 'certificado_caminho.txt' deve conter o caminho para o 'certificado.pfx' # p.certificado.arquivo = open(FILE_DIR+'/certificado_caminho.txt').read().strip() # # arquivo 'certificado_senha.txt' deve conter a senha para o 'certificado.pfx' # p.certificado.senha = open(FILE_DIR+'/certificado_senha.txt').read().strip()
# Você deve ter recebido uma cópia da GNU Library General Public License # juntamente com este programa. Caso esse não seja o caso, acesse: # <http://www.gnu.org/licenses/> # from __future__ import division, print_function, unicode_literals from os.path import abspath, dirname from pysped.nfe import ProcessadorNFe FILE_DIR = abspath(dirname(__file__)) if __name__ == '__main__': p = ProcessadorNFe() p.versao = '1.10' p.estado = 'SP' #p.certificado.arquivo = 'certificado.pfx' #p.certificado.senha = 'senha' # # arquivo 'certificado_caminho.txt' deve conter o caminho para o 'certificado.pfx' # p.certificado.arquivo = open(FILE_DIR+'/certificado_caminho.txt').read().strip() # # arquivo 'certificado_senha.txt' deve conter a senha para o 'certificado.pfx' # p.certificado.senha = open(FILE_DIR+'/certificado_senha.txt').read().strip()
# # Você deve ter recebido uma cópia da GNU Affero General Public License # juntamente com este programa. Caso esse não seja o caso, acesse: # <http://www.gnu.org/licenses/> # from __future__ import division, print_function, unicode_literals from os.path import abspath, dirname from pysped.nfe import ProcessadorNFe from pysped.nfe.webservices_flags import * FILE_DIR = abspath(dirname(__file__)) if __name__ == '__main__': p = ProcessadorNFe() p.versao = '1.10' p.estado = 'SP' #p.certificado.arquivo = 'certificado.pfx' #p.certificado.senha = 'senha' # # arquivo 'certificado_caminho.txt' deve conter o caminho para o 'certificado.pfx' # p.certificado.arquivo = open(FILE_DIR + '/certificado_caminho.txt').read().strip() # # arquivo 'certificado_senha.txt' deve conter a senha para o 'certificado.pfx' # p.certificado.senha = open(FILE_DIR +
# # Você deve ter recebido uma cópia da GNU Affero General Public License # juntamente com este programa. Caso esse não seja o caso, acesse: # <http://www.gnu.org/licenses/> # from __future__ import division, print_function, unicode_literals from os.path import abspath, dirname from pysped.nfe import ProcessadorNFe from pysped.nfe.webservices_flags import * FILE_DIR = abspath(dirname(__file__)) if __name__ == '__main__': p = ProcessadorNFe() p.versao = '2.00' p.estado = 'SP' #p.certificado.arquivo = 'certificado.pfx' #p.certificado.senha = 'senha' # # arquivo 'certificado_caminho.txt' deve conter o caminho para o 'certificado.pfx' # p.certificado.arquivo = open(FILE_DIR + '/certificado_caminho.txt').read().strip() # # arquivo 'certificado_senha.txt' deve conter a senha para o 'certificado.pfx' # p.certificado.senha = open(FILE_DIR +
# -*- coding: utf-8 -*- from pysped.nfe import ProcessadorNFe from pysped.nfe.webservices_flags import * from pysped.nfe.manual_401 import * from datetime import datetime from os.path import abspath, dirname FILE_DIR = abspath(dirname(__file__)) if __name__ == '__main__': p = ProcessadorNFe() p.versao = u'2.00' p.estado = u'SP' # arquivo 'certificado_caminho.txt' deve conter o caminho para o 'certificado.pfx' p.certificado.arquivo = open(FILE_DIR+'/certificado_caminho.txt').read().strip() # arquivo 'certificado_senha.txt' deve conter a senha para o 'certificado.pfx' p.certificado.senha = open(FILE_DIR+'/certificado_senha.txt').read().strip() p.salvar_arquivos = True p.contingencia_SCAN = False p.caminho = u'' # # Instancia uma NF-e # n = NFe_200() # # Identificação da NF-e # n.infNFe.ide.cUF.valor = UF_CODIGO[u'SP']
# GNU Library General Public License para mais detalhes. # # Você deve ter recebido uma cópia da GNU Library General Public License # juntamente com este programa. Caso esse não seja o caso, acesse: # <http://www.gnu.org/licenses/> # from __future__ import division, print_function, unicode_literals from os.path import abspath, dirname from pysped.nfe import ProcessadorNFe FILE_DIR = abspath(dirname(__file__)) if __name__ == '__main__': p = ProcessadorNFe() p.versao = '2.00' p.estado = 'SP' #p.certificado.arquivo = 'certificado.pfx' #p.certificado.senha = 'senha' # # arquivo 'certificado_caminho.txt' deve conter o caminho para o 'certificado.pfx' # p.certificado.arquivo = open(FILE_DIR + '/certificado_caminho.txt').read().strip() # # arquivo 'certificado_senha.txt' deve conter a senha para o 'certificado.pfx' # p.certificado.senha = open(FILE_DIR +
# GNU Library General Public License para mais detalhes. # # Você deve ter recebido uma cópia da GNU Library General Public License # juntamente com este programa. Caso esse não seja o caso, acesse: # <http://www.gnu.org/licenses/> # from __future__ import division, print_function, unicode_literals from os.path import abspath, dirname from pysped.nfe import ProcessadorNFe FILE_DIR = abspath(dirname(__file__)) if __name__ == '__main__': p = ProcessadorNFe() p.versao = '1.10' p.estado = 'SP' #p.certificado.arquivo = 'certificado.pfx' #p.certificado.senha = 'senha' # # arquivo 'certificado_caminho.txt' deve conter o caminho para o 'certificado.pfx' # p.certificado.arquivo = open(FILE_DIR + '/certificado_caminho.txt').read().strip() # # arquivo 'certificado_senha.txt' deve conter a senha para o 'certificado.pfx' # p.certificado.senha = open(FILE_DIR +
# juntamente com este programa. Caso esse não seja o caso, acesse: # <http://www.gnu.org/licenses/> # from __future__ import division, print_function, unicode_literals from os.path import abspath, dirname from datetime import datetime from pysped.nfe import ProcessadorNFe from pysped.nfe.webservices_flags import * from pysped.nfe.leiaute import * FILE_DIR = abspath(dirname(__file__)) if __name__ == '__main__': p = ProcessadorNFe() p.versao = '1.10' p.estado = 'SP' #p.certificado.arquivo = 'certificado.pfx' #p.certificado.senha = 'senha' # # arquivo 'certificado_caminho.txt' deve conter o caminho para o 'certificado.pfx' # p.certificado.arquivo = open(FILE_DIR + '/certificado_caminho.txt').read().strip() # # arquivo 'certificado_senha.txt' deve conter a senha para o 'certificado.pfx' # p.certificado.senha = open(FILE_DIR +
def test_gerar_enviar_nota_20(cert_info): from pysped.nfe import ProcessadorNFe from pysped.nfe.manual_401 import * from pysped.nfe.webservices_flags import * p = ProcessadorNFe() p.versao = u"2.00" p.estado = u"SP" p.certificado.arquivo = cert_info.arquivo p.certificado.senha = cert_info.senha p.salvar_arquivos = True p.contingencia_SCAN = False p.caminho = u"" # # Instancia uma NF-e # n = NFe_200() # # Identificação da NF-e # n.infNFe.ide.cUF.valor = UF_CODIGO[u"SP"] n.infNFe.ide.natOp.valor = u"Venda de produto do estabelecimento" n.infNFe.ide.indPag.valor = 2 n.infNFe.ide.serie.valor = 101 n.infNFe.ide.nNF.valor = 37 n.infNFe.ide.dEmi.valor = datetime(2011, 5, 25) n.infNFe.ide.dSaiEnt.valor = datetime(2011, 5, 25) n.infNFe.ide.cMunFG.valor = 3513801 n.infNFe.ide.tpImp.valor = 1 n.infNFe.ide.tpEmis.valor = 1 n.infNFe.ide.indPag.valor = 1 n.infNFe.ide.finNFe.valor = 1 n.infNFe.ide.procEmi.valor = 0 n.infNFe.ide.verProc.valor = u"TaugaRS Haveno 1.0" # # Emitente # n.infNFe.emit.CNPJ.valor = u"11111111111111" n.infNFe.emit.xNome.valor = u"Razao Social Emitente Ltda. EPP" n.infNFe.emit.xFant.valor = u"Bromelia" n.infNFe.emit.enderEmit.xLgr.valor = u"R. Ibiuna" n.infNFe.emit.enderEmit.nro.valor = u"729" n.infNFe.emit.enderEmit.xCpl.valor = u"sala 3" n.infNFe.emit.enderEmit.xBairro.valor = u"Jd. Guanabara" n.infNFe.emit.enderEmit.cMun.valor = u"3552205" n.infNFe.emit.enderEmit.xMun.valor = u"Sorocaba" n.infNFe.emit.enderEmit.UF.valor = u"SP" n.infNFe.emit.enderEmit.CEP.valor = u"18085520" # n.infNFe.emit.enderEmit.cPais.valor = u'1058' # n.infNFe.emit.enderEmit.xPais.valor = u'Brasil' n.infNFe.emit.enderEmit.fone.valor = u"1534110602" n.infNFe.emit.IE.valor = u"111111111111" # # Regime tributário # n.infNFe.emit.CRT.valor = u"1" # # Destinatário # n.infNFe.dest.CNPJ.valor = u"11143192000101" n.infNFe.dest.xNome.valor = u"Razao Social Destinatario Ltda. EPP" n.infNFe.dest.enderDest.xLgr.valor = u"R. Ibiuna" n.infNFe.dest.enderDest.nro.valor = u"729" n.infNFe.dest.enderDest.xCpl.valor = u"sala 3" n.infNFe.dest.enderDest.xBairro.valor = u"Jd. Morumbi" n.infNFe.dest.enderDest.cMun.valor = u"3552205" n.infNFe.dest.enderDest.xMun.valor = u"Sorocaba" n.infNFe.dest.enderDest.UF.valor = u"SP" n.infNFe.dest.enderDest.CEP.valor = u"18085520" # n.infNFe.dest.enderDest.cPais.valor = u'1058' # n.infNFe.dest.enderDest.xPais.valor = u'Brasil' n.infNFe.dest.enderDest.fone.valor = u"1534110602" n.infNFe.dest.IE.valor = u"795009239110" # # Emeio # n.infNFe.dest.email.valor = u"*****@*****.**" # # Detalhe # d1 = Det_200() d1.nItem.valor = 1 d1.prod.cProd.valor = u"codigo do produto um" d1.prod.cEAN.valor = u"" d1.prod.xProd.valor = u"Descricao do produto" d1.prod.NCM.valor = u"94034000" d1.prod.EXTIPI.valor = u"" d1.prod.CFOP.valor = u"5101" d1.prod.uCom.valor = u"UND" d1.prod.qCom.valor = u"100.00" d1.prod.vUnCom.valor = u"10.0000" d1.prod.vProd.valor = u"1000.00" d1.prod.cEANTrib.valor = u"" d1.prod.uTrib.valor = d1.prod.uCom.valor d1.prod.qTrib.valor = d1.prod.qCom.valor d1.prod.vUnTrib.valor = d1.prod.vUnCom.valor d1.prod.vFrete.valor = u"0.00" d1.prod.vSeg.valor = u"0.00" d1.prod.vDesc.valor = u"0.00" d1.prod.vOutro.valor = u"0.00" # # Produto entra no total da NF-e # d1.prod.indTot.valor = 1 # # Impostos # d1.imposto.regime_tributario = 1 d1.imposto.ICMS.CSOSN.valor = u"400" # d1.imposto.ICMS.vBC.valor = u'1000.00' d1.imposto.IPI.CST.valor = u"99" # d1.imposto.IPI.vBC.valor = u'1000.00' # d1.imposto.IPI.pIPI.valor = u'10.00' # d1.imposto.IPI.vIPI.valor = u'100.00' d1.imposto.PIS.CST.valor = u"06" # d1.imposto.PIS.vBC.valor = u'1000.00' # d1.imposto.PIS.pPIS.valor = u'0.65' # d1.imposto.PIS.vPIS.valor = u'6.50' d1.imposto.COFINS.CST.valor = u"06" # d1.imposto.COFINS.vBC.valor = u'1000.00' # d1.imposto.COFINS.pCOFINS.valor = u'3.00' # d1.imposto.COFINS.vCOFINS.valor = u'30.00' # # Detalhe # d2 = Det_200() d2.nItem.valor = 2 d2.prod.cProd.valor = u"codigo do produto dois" d2.prod.cEAN.valor = u"" d2.prod.xProd.valor = u"Descricao do produto" d2.prod.NCM.valor = u"94034000" d2.prod.EXTIPI.valor = u"" d2.prod.CFOP.valor = u"5101" d2.prod.uCom.valor = u"UND" d2.prod.qCom.valor = u"100.00" d2.prod.vUnCom.valor = u"10.0000" d2.prod.vProd.valor = u"1000.00" d2.prod.cEANTrib.valor = u"" d2.prod.uTrib.valor = d1.prod.uCom.valor d2.prod.qTrib.valor = d1.prod.qCom.valor d2.prod.vUnTrib.valor = d1.prod.vUnCom.valor d2.prod.vFrete.valor = u"0.00" d2.prod.vSeg.valor = u"0.00" d2.prod.vDesc.valor = u"0.00" d2.prod.vOutro.valor = u"0.00" # # Produto entra no total da NF-e # d2.prod.indTot.valor = 1 # # Impostos # d2.imposto.regime_tributario = 1 d2.imposto.ICMS.CSOSN.valor = u"400" # d2.imposto.ICMS.vBC.valor = u'1000.00' d2.imposto.IPI.CST.valor = u"99" # d2.imposto.IPI.vBC.valor = u'1000.00' # d2.imposto.IPI.pIPI.valor = u'10.00' # d2.imposto.IPI.vIPI.valor = u'100.00' d2.imposto.PIS.CST.valor = u"06" # d2.imposto.PIS.vBC.valor = u'1000.00' # d2.imposto.PIS.pPIS.valor = u'0.65' # d2.imposto.PIS.vPIS.valor = u'6.50' d2.imposto.COFINS.CST.valor = u"06" # d2.imposto.COFINS.vBC.valor = u'1000.00' # d2.imposto.COFINS.pCOFINS.valor = u'3.00' # d2.imposto.COFINS.vCOFINS.valor = u'30.00' # # Os primeiros 188 caracteres desta string # são todos os caracteres válidos em tags da NF-e # # d1.infAdProd.valor = u'!"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ !"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ !"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ·¸¹º»¼½¾¿À' # # Inclui o detalhe na NF-e # n.infNFe.det.append(d1) # # Totais # n.infNFe.total.ICMSTot.vBC.valor = u"0.00" n.infNFe.total.ICMSTot.vICMS.valor = u"0.00" n.infNFe.total.ICMSTot.vBCST.valor = u"0.00" n.infNFe.total.ICMSTot.vST.valor = u"0.00" n.infNFe.total.ICMSTot.vProd.valor = u"1000.00" n.infNFe.total.ICMSTot.vFrete.valor = u"0.00" n.infNFe.total.ICMSTot.vSeg.valor = u"0.00" n.infNFe.total.ICMSTot.vDesc.valor = u"0.00" n.infNFe.total.ICMSTot.vII.valor = u"0.00" n.infNFe.total.ICMSTot.vIPI.valor = u"0.00" n.infNFe.total.ICMSTot.vPIS.valor = u"0.00" n.infNFe.total.ICMSTot.vCOFINS.valor = u"0.00" n.infNFe.total.ICMSTot.vOutro.valor = u"0.00" n.infNFe.total.ICMSTot.vNF.valor = u"0.00" n.infNFe.infAdic.infCpl.valor = ( u"Documento emitido por ME ou EPP optante pelo Simples Nacional. " u"Nao gera direito a credito fiscal de IPI. " ) # # O retorno de cada webservice é um dicionário # estruturado da seguinte maneira: # { TIPO_DO_WS_EXECUTADO: { # u'envio' : InstanciaDaMensagemDeEnvio, # u'resposta': InstanciaDaMensagemDeResposta, # } # } # for processo in p.processar_notas([n]): print print print processo.envio.xml print print processo.resposta.xml print assert processo.resposta.reason != u"Forbidden"
FILE_DIR = abspath(dirname(__file__)) # # # ATENÇÃO! # # Em todas as consultas que eu tentei, a RFB sempre me diz que não # retorna as notas solicitadas, mesmo em produção. # Se alguém conseguir um resultado positivo da RFB, me avise, porque daí # vou poder dar a tratativa dos arquivos zipados que virão na resposta. # # if __name__ == '__main__': p = ProcessadorNFe() p.versao = '2.00' p.estado = 'SP' #p.certificado.arquivo = 'certificado.pfx' #p.certificado.senha = 'senha' # # arquivo 'certificado_caminho.txt' deve conter o caminho para o 'certificado.pfx' # p.certificado.arquivo = open(FILE_DIR + '/certificado_caminho.txt').read().strip() # # arquivo 'certificado_senha.txt' deve conter a senha para o 'certificado.pfx' # p.certificado.senha = open(FILE_DIR +
# # # ATENÇÃO! # # Em todas as consultas que eu tentei, a RFB sempre me diz que não # há nenhuma nota emitida para o CNPJ consultado, mesmo em ambiente de produção. # Isso mesmo quando na resposta a tag indCont retorna 1, ou seja, # dizendo que ainda há notas a serem consultadas... # Por isso mesmo, não criei nenhuma tratativa das notas retornadas na resposta, # então, se alguém conseguir uma resposta com dados, por favor, me avise, sim? # # if __name__ == '__main__': p = ProcessadorNFe() p.versao = '2.00' p.estado = 'SP' #p.certificado.arquivo = 'certificado.pfx' #p.certificado.senha = 'senha' # # arquivo 'certificado_caminho.txt' deve conter o caminho para o 'certificado.pfx' # p.certificado.arquivo = open(FILE_DIR+'/certificado_caminho.txt').read().strip() # # arquivo 'certificado_senha.txt' deve conter a senha para o 'certificado.pfx' # p.certificado.senha = open(FILE_DIR+'/certificado_senha.txt').read().strip()
FILE_DIR = abspath(dirname(__file__)) # # # ATENÇÃO! # # Em todas as consultas que eu tentei, a RFB sempre me diz que não # retorna as notas solicitadas, mesmo em produção. # Se alguém conseguir um resultado positivo da RFB, me avise, porque daí # vou poder dar a tratativa dos arquivos zipados que virão na resposta. # # if __name__ == '__main__': p = ProcessadorNFe() p.versao = '2.00' p.estado = 'SP' #p.certificado.arquivo = 'certificado.pfx' #p.certificado.senha = 'senha' # # arquivo 'certificado_caminho.txt' deve conter o caminho para o 'certificado.pfx' # p.certificado.arquivo = open(FILE_DIR+'/certificado_caminho.txt').read().strip() # # arquivo 'certificado_senha.txt' deve conter a senha para o 'certificado.pfx' # p.certificado.senha = open(FILE_DIR+'/certificado_senha.txt').read().strip()
from os.path import abspath, dirname from datetime import datetime from pysped.nfe import ProcessadorNFe from pysped.nfe.webservices_flags import (UF_CODIGO, WS_NFE_CONSULTA_RECIBO) from pysped.nfe.leiaute import Det_310,NFe_310 FILE_DIR = abspath(dirname(__file__)) if __name__ == '__main__': p = ProcessadorNFe() p.versao = '3.10' p.estado = 'RS' #p.certificado.arquivo = 'certificado.pfx' #p.certificado.senha = 'senha' # # arquivo 'certificado_caminho.txt' deve conter o caminho para o 'certificado.pfx' # p.certificado.arquivo = open('/certificado_caminho.txt').read().strip() # # arquivo 'certificado_senha.txt' deve conter a senha para o 'certificado.pfx' # p.certificado.senha = open('/certificado_senha.txt').read().strip()