Browse Source

Merge remote-tracking branch 'upstream/master'

pull/59/head
mandala21 7 years ago
parent
commit
87ad5f5f77
  1. 5
      pynfe/processamento/comunicacao.py
  2. 8
      pynfe/processamento/serializacao.py
  3. 61
      pynfe/utils/webservices.py

5
pynfe/processamento/comunicacao.py

@ -17,7 +17,6 @@ from pynfe.utils.flags import (
from pynfe.utils.webservices import NFE, NFCE, NFSE from pynfe.utils.webservices import NFE, NFCE, NFSE
from pynfe.entidades.certificado import CertificadoA1 from pynfe.entidades.certificado import CertificadoA1
from .assinatura import AssinaturaA1 from .assinatura import AssinaturaA1
from pynfe.utils.descompactar import DescompactaGzip
class Comunicacao(object): class Comunicacao(object):
@ -291,7 +290,7 @@ class ComunicacaoSefaz(Comunicacao):
'uf': uf, 'uf': uf,
'ano': ano, 'ano': ano,
'cnpj': cnpj, 'cnpj': cnpj,
'modelo': '55',
'modelo': '55' if modelo == 'nfe' else '65', # 55=NF-e; 65=NFC-e;
'serie': serie.zfill(3), 'serie': serie.zfill(3),
'num_ini': str(numero_inicial).zfill(9), 'num_ini': str(numero_inicial).zfill(9),
'num_fin': str(numero_final).zfill(9), 'num_fin': str(numero_final).zfill(9),
@ -357,7 +356,7 @@ class ComunicacaoSefaz(Comunicacao):
raise Exception('Modelo não encontrado! Defina modelo="nfe" ou "nfce"') raise Exception('Modelo não encontrado! Defina modelo="nfe" ou "nfce"')
# Estados que utilizam outros ambientes # Estados que utilizam outros ambientes
else: else:
lista_svrs = ['AC', 'RJ', 'RN', 'PB', 'SC', 'SE', 'PI']
lista_svrs = ['AC', 'RJ', 'RN', 'PB', 'SC', 'SE', 'PI', 'DF', 'ES']
lista_svan = ['MA','PA'] lista_svan = ['MA','PA']
if self.uf.upper() in lista_svrs: if self.uf.upper() in lista_svrs:
if self._ambiente == 1: if self._ambiente == 1:

8
pynfe/processamento/serializacao.py

@ -305,9 +305,9 @@ class SerializacaoXML(Serializacao):
etree.SubElement(icms_item, 'modBCST').text = str(produto_servico.icms_st_modalidade_determinacao_bc) etree.SubElement(icms_item, 'modBCST').text = str(produto_servico.icms_st_modalidade_determinacao_bc)
etree.SubElement(icms_item, 'pMVAST').text = str(produto_servico.icms_st_percentual_adicional) # Percentual da margem de valor Adicionado do ICMS ST etree.SubElement(icms_item, 'pMVAST').text = str(produto_servico.icms_st_percentual_adicional) # Percentual da margem de valor Adicionado do ICMS ST
etree.SubElement(icms_item, 'pRedBCST').text = str(produto_servico.icms_st_percentual_reducao_bc) # APercentual da Redução de BC do ICMS ST etree.SubElement(icms_item, 'pRedBCST').text = str(produto_servico.icms_st_percentual_reducao_bc) # APercentual da Redução de BC do ICMS ST
etree.SubElement(icms_item, 'vBCST ').text = str(produto_servico.icms_st_valor_base_calculo)
etree.SubElement(icms_item, 'pICMSST ').text = str(produto_servico.icms_st_aliquota)
etree.SubElement(icms_item, 'vICMSST ').text = str(produto_servico.icms_st_valor)
etree.SubElement(icms_item, 'vBCST').text = str(produto_servico.icms_st_valor_base_calculo)
etree.SubElement(icms_item, 'pICMSST').text = str(produto_servico.icms_st_aliquota)
etree.SubElement(icms_item, 'vICMSST').text = str(produto_servico.icms_st_valor)
# 20=Com redução de base de cálculo # 20=Com redução de base de cálculo
elif produto_servico.icms_modalidade == '20': elif produto_servico.icms_modalidade == '20':
etree.SubElement(icms_item, 'pRedBC').text = '{:.2f}'.format(produto_servico.icms_percentual_reducao_bc or 0) # Percentual da Redução de BC etree.SubElement(icms_item, 'pRedBC').text = '{:.2f}'.format(produto_servico.icms_percentual_reducao_bc or 0) # Percentual da Redução de BC
@ -728,7 +728,7 @@ class SerializacaoQrcode(object):
# url_chave - Texto com a URL de consulta por chave de acesso a ser impressa no DANFE NFC-e. # url_chave - Texto com a URL de consulta por chave de acesso a ser impressa no DANFE NFC-e.
# Informar a URL da “Consulta por chave de acesso da NFC-e”. # Informar a URL da “Consulta por chave de acesso da NFC-e”.
# A mesma URL que deve estar informada no DANFE NFC-e para consulta por chave de acesso # A mesma URL que deve estar informada no DANFE NFC-e para consulta por chave de acesso
lista_uf_padrao = ['PR', 'CE', 'RS', 'RJ', 'RO']
lista_uf_padrao = ['PR', 'CE', 'RS', 'RJ', 'RO', 'DF']
if uf.upper() in lista_uf_padrao: if uf.upper() in lista_uf_padrao:
qrcode = NFCE[uf.upper()]['QR'] + url qrcode = NFCE[uf.upper()]['QR'] + url
url_chave = NFCE[uf.upper()]['URL'] url_chave = NFCE[uf.upper()]['URL']

61
pynfe/utils/webservices.py

@ -26,12 +26,12 @@ NFCE = {
'AM': { 'AM': {
# csc_homologacao = '0123456789' # csc_homologacao = '0123456789'
# token_homologacao = '000001' # token_homologacao = '000001'
'STATUS': 'nfce.sefaz.am.gov.br/nfce-services-nac/services/NfeStatusServico2',
'AUTORIZACAO': 'nfce.sefaz.am.gov.br/nfce-services-nac/services/NfeAutorizacao',
'RECIBO': 'nfce.sefaz.am.gov.br/nfce-services-nac/services/NfeRetAutorizacao',
'CHAVE': 'nfce.sefaz.am.gov.br/nfce-services-nac/services/NfeConsulta2',
'INUTILIZACAO': 'nfce.sefaz.am.gov.br/nfce-services-nac/services/NfeInutilizacao2',
'EVENTOS': 'nfce.sefaz.am.gov.br/nfce-services-nac/services/RecepcaoEvento',
'STATUS': 'nfe.sefaz.am.gov.br/services2/services/NfeStatusServico4',
'AUTORIZACAO': 'nfe.sefaz.am.gov.br/services2/services/NfeAutorizacao4',
'RECIBO': 'nfe.sefaz.am.gov.br/services2/services/NfeRetAutorizacao4',
'CHAVE': 'nfe.sefaz.am.gov.br/services2/services/NfeConsulta4',
'INUTILIZACAO': 'nfe.sefaz.am.gov.br/services2/services/NfeInutilizacao4',
'EVENTOS': 'nfe.sefaz.am.gov.br/services2/services/RecepcaoEvento4',
'QR': 'sefaz.am.gov.br/nfceweb/consultarNFCe.jsp?', 'QR': 'sefaz.am.gov.br/nfceweb/consultarNFCe.jsp?',
'URL': 'sefaz.am.gov.br/nfceweb/formConsulta.do', 'URL': 'sefaz.am.gov.br/nfceweb/formConsulta.do',
'HTTPS': 'http://sistemas.', 'HTTPS': 'http://sistemas.',
@ -127,7 +127,7 @@ NFCE = {
'EVENTOS': '', 'EVENTOS': '',
'QR': 'sefaz.pe.gov.br/nfce/consulta?', 'QR': 'sefaz.pe.gov.br/nfce/consulta?',
'HTTPS': 'http://nfce.', 'HTTPS': 'http://nfce.',
'HOMOLOGACAO': 'http://nfce.',
'HOMOLOGACAO': 'http://nfcehomolog.',
'URL': 'sefaz.pe.gov.br/nfce/consulta' 'URL': 'sefaz.pe.gov.br/nfce/consulta'
}, },
'AL': { 'AL': {
@ -172,7 +172,10 @@ NFCE = {
'CHAVE': '', 'CHAVE': '',
'INUTILIZACAO': '', 'INUTILIZACAO': '',
'EVENTOS': '', 'EVENTOS': '',
'QR': ''
'QR': 'sefaz.es.gov.br/ConsultaNFCe/qrcode.aspx? ',
'HTTPS': 'http://nfe.',
'HOMOLOGACAO': 'http://homologacao.',
'URL': 'www.sefaz.es.gov.br/nfce/consulta'
}, },
'RJ': { 'RJ': {
'STATUS': '', 'STATUS': '',
@ -263,6 +266,10 @@ NFCE = {
'HTTPS': 'http://nfe.', 'HTTPS': 'http://nfe.',
'HOMOLOGACAO': 'http://homolog.' 'HOMOLOGACAO': 'http://homolog.'
}, },
'DF': {
'QR': 'http://www.fazenda.df.gov.br/nfce/qrcode?',
'URL': 'www.fazenda.df.gov.br/nfce/consulta'
},
# RO, AC, RR, PA, AP, TO, MA, PI, RN, PB, AL, SE, BA, ES, RJ, GO, DF # RO, AC, RR, PA, AP, TO, MA, PI, RN, PB, AL, SE, BA, ES, RJ, GO, DF
'SVRS': { 'SVRS': {
'STATUS': 'svrs.rs.gov.br/ws/NfeStatusServico/NfeStatusServico4.asmx', 'STATUS': 'svrs.rs.gov.br/ws/NfeStatusServico/NfeStatusServico4.asmx',
@ -289,12 +296,12 @@ NFE = {
'HOMOLOGACAO': 'https://hom' 'HOMOLOGACAO': 'https://hom'
}, },
'AM': { 'AM': {
'STATUS': 'nfe.sefaz.am.gov.br/services2/services/NfeStatusServico2',
'AUTORIZACAO': 'nfe.sefaz.am.gov.br/services2/services/NfeAutorizacao',
'RECIBO': 'nfe.sefaz.am.gov.br/services2/services/NfeRetAutorizacao',
'CHAVE': 'nfe.sefaz.am.gov.br/services2/services/NfeConsulta2',
'INUTILIZACAO': 'nfe.sefaz.am.gov.br/services2/services/NfeInutilizacao2',
'EVENTOS': 'nfe.sefaz.am.gov.br/services2/services/RecepcaoEvento',
'STATUS': 'nfe.sefaz.am.gov.br/services2/services/NfeStatusServico4',
'AUTORIZACAO': 'nfe.sefaz.am.gov.br/services2/services/NfeAutorizacao4',
'RECIBO': 'nfe.sefaz.am.gov.br/services2/services/NfeRetAutorizacao4',
'CHAVE': 'nfe.sefaz.am.gov.br/services2/services/NfeConsulta4',
'INUTILIZACAO': 'nfe.sefaz.am.gov.br/services2/services/NfeInutilizacao4',
'EVENTOS': 'nfe.sefaz.am.gov.br/services2/services/RecepcaoEvento4',
'CADASTRO': 'nfe.sefaz.am.gov.br/services2/services/cadconsultacadastro2', 'CADASTRO': 'nfe.sefaz.am.gov.br/services2/services/cadconsultacadastro2',
'HTTPS': 'https://', 'HTTPS': 'https://',
'HOMOLOGACAO': 'https://hom' 'HOMOLOGACAO': 'https://hom'
@ -309,7 +316,7 @@ NFE = {
'CHAVE': 'sefaz.ce.gov.br/nfe4/services/NFeConsultaProtocolo4?WSDL', 'CHAVE': 'sefaz.ce.gov.br/nfe4/services/NFeConsultaProtocolo4?WSDL',
'INUTILIZACAO': 'sefaz.ce.gov.br/nfe4/services/NFeInutilizacao4?WSDL', 'INUTILIZACAO': 'sefaz.ce.gov.br/nfe4/services/NFeInutilizacao4?WSDL',
'EVENTOS': 'sefaz.ce.gov.br/nfe4/services/NFeRecepcaoEvento4?WSDL', 'EVENTOS': 'sefaz.ce.gov.br/nfe4/services/NFeRecepcaoEvento4?WSDL',
'CADASTRO': 'sefaz.ce.gov.br/nfe2/services/CadConsultaCadastro2?wsdl',
'CADASTRO': 'nfe.sefaz.ce.gov.br/nfe4/services/CadConsultaCadastro4?wsdl',
'DOWNLOAD': 'sefaz.ce.gov.br/nfe2/services/NfeDownloadNF?wsdl', 'DOWNLOAD': 'sefaz.ce.gov.br/nfe2/services/NfeDownloadNF?wsdl',
'HTTPS': 'https://nfe.', 'HTTPS': 'https://nfe.',
'HOMOLOGACAO': 'https://nfeh.' 'HOMOLOGACAO': 'https://nfeh.'
@ -342,16 +349,16 @@ NFE = {
'RECIBO': 'nfe.fazenda.mg.gov.br/nfe2/services/NFeRetAutorizacao4', 'RECIBO': 'nfe.fazenda.mg.gov.br/nfe2/services/NFeRetAutorizacao4',
'CHAVE': 'nfe.fazenda.mg.gov.br/nfe2/services/NFeConsulta4', 'CHAVE': 'nfe.fazenda.mg.gov.br/nfe2/services/NFeConsulta4',
'INUTILIZACAO': 'nfe.fazenda.mg.gov.br/nfe2/services/NFeInutilizacao4', 'INUTILIZACAO': 'nfe.fazenda.mg.gov.br/nfe2/services/NFeInutilizacao4',
'EVENTOS': 'nfe.fazenda.mg.gov.br/nfe2/services/RecepcaoEvento',
'EVENTOS': 'nfe.fazenda.mg.gov.br/nfe2/services/NFeRecepcaoEvento4',
'CADASTRO': 'nfe.fazenda.mg.gov.br/nfe2/services/cadconsultacadastro2', 'CADASTRO': 'nfe.fazenda.mg.gov.br/nfe2/services/cadconsultacadastro2',
'HTTPS': 'https://', 'HTTPS': 'https://',
'HOMOLOGACAO': 'https://h' 'HOMOLOGACAO': 'https://h'
}, },
'SP': { 'SP': {
'STATUS': 'nfe.fazenda.sp.gov.br/ws/NFeStatusServico4.asmx',
'STATUS': 'nfe.fazenda.sp.gov.br/ws/nfestatusservico4.asmx',
'AUTORIZACAO': 'nfe.fazenda.sp.gov.br/ws/nfeautorizacao4.asmx', 'AUTORIZACAO': 'nfe.fazenda.sp.gov.br/ws/nfeautorizacao4.asmx',
'RECIBO': 'nfe.fazenda.sp.gov.br/ws/nferetautorizacao4.asmx', 'RECIBO': 'nfe.fazenda.sp.gov.br/ws/nferetautorizacao4.asmx',
'CHAVE': 'nfe.fazenda.sp.gov.br/ws/nfeconsulta4.asmx',
'CHAVE': 'nfe.fazenda.sp.gov.br/ws/nfeconsultaprotocolo4.asmx',
'INUTILIZACAO': 'nfe.fazenda.sp.gov.br/ws/nfeinutilizacao4.asmx', 'INUTILIZACAO': 'nfe.fazenda.sp.gov.br/ws/nfeinutilizacao4.asmx',
'EVENTOS': 'nfe.fazenda.sp.gov.br/ws/nferecepcaoevento4.asmx', 'EVENTOS': 'nfe.fazenda.sp.gov.br/ws/nferecepcaoevento4.asmx',
'CADASTRO': 'nfe.fazenda.sp.gov.br/ws/cadconsultacadastro4.asmx', 'CADASTRO': 'nfe.fazenda.sp.gov.br/ws/cadconsultacadastro4.asmx',
@ -377,7 +384,7 @@ NFE = {
'CHAVE': 'sefazrs.rs.gov.br/ws/NfeConsulta/NfeConsulta4.asmx', 'CHAVE': 'sefazrs.rs.gov.br/ws/NfeConsulta/NfeConsulta4.asmx',
'INUTILIZACAO': 'sefazrs.rs.gov.br/ws/nfeinutilizacao/nfeinutilizacao4.asmx', 'INUTILIZACAO': 'sefazrs.rs.gov.br/ws/nfeinutilizacao/nfeinutilizacao4.asmx',
'EVENTOS': 'sefazrs.rs.gov.br/ws/recepcaoevento/recepcaoevento4.asmx', 'EVENTOS': 'sefazrs.rs.gov.br/ws/recepcaoevento/recepcaoevento4.asmx',
'CADASTRO': 'https://cad.sefazrs.rs.gov.br/ws/cadconsultacadastro/cadconsultacadastro2.asmx',
'CADASTRO': 'cad.sefazrs.rs.gov.br/ws/cadconsultacadastro/cadconsultacadastro2.asmx',
'DOWNLOAD': 'sefazrs.rs.gov.br/ws/nfeDownloadNF/nfeDownloadNF.asmx', 'DOWNLOAD': 'sefazrs.rs.gov.br/ws/nfeDownloadNF/nfeDownloadNF.asmx',
'DESTINADAS': 'sefazrs.rs.gov.br/ws/nfeConsultaDest/nfeConsultaDest.asmx', 'DESTINADAS': 'sefazrs.rs.gov.br/ws/nfeConsultaDest/nfeConsultaDest.asmx',
'HTTPS': 'https://nfe.', 'HTTPS': 'https://nfe.',
@ -390,18 +397,18 @@ NFE = {
'CHAVE': 'nfe.ms.gov.br/ws/NFeConsultaProtocolo4', 'CHAVE': 'nfe.ms.gov.br/ws/NFeConsultaProtocolo4',
'INUTILIZACAO': 'nfe.ms.gov.br/ws/NFeInutilizacao4', 'INUTILIZACAO': 'nfe.ms.gov.br/ws/NFeInutilizacao4',
'EVENTOS': 'nfe.ms.gov.br/ws/NFeRecepcaoEvento4', 'EVENTOS': 'nfe.ms.gov.br/ws/NFeRecepcaoEvento4',
'CADASTRO': 'nfe.fazenda.ms.gov.br/producao/services2/CadConsultaCadastro2',
'CADASTRO': 'nfe.sefaz.ms.gov.br/ws/CadConsultaCadastro4',
'HTTPS': 'https://', 'HTTPS': 'https://',
'HOMOLOGACAO': 'https://homologacao.' 'HOMOLOGACAO': 'https://homologacao.'
}, },
'MT': { 'MT': {
'STATUS': 'sefaz.mt.gov.br/nfews/v2/services/NfeStatusServico2?wsdl',
'AUTORIZACAO': 'sefaz.mt.gov.br/nfews/v2/services/NfeAutorizacao?wsdl',
'RECIBO': 'sefaz.mt.gov.br/nfews/v2/services/NfeRetAutorizacao?wsdl',
'CHAVE': 'sefaz.mt.gov.br/nfews/v2/services/NfeConsulta2?wsdl',
'INUTILIZACAO': 'sefaz.mt.gov.br/nfews/v2/services/NfeInutilizacao2?wsdl',
'EVENTOS': 'sefaz.mt.gov.br/nfews/v2/services/RecepcaoEvento?wsdl',
'CADASTRO': 'sefaz.mt.gov.br/nfews/v2/services/CadConsultaCadastro2?wsdl',
'STATUS': 'nfe.sefaz.mt.gov.br/nfews/v2/services/NfeStatusServico4?wsdl',
'AUTORIZACAO': 'nfe.sefaz.mt.gov.br/nfews/v2/services/NfeAutorizacao4?wsdl',
'RECIBO': 'nfe.sefaz.mt.gov.br/nfews/v2/services/NfeRetAutorizacao4?wsdl',
'CHAVE': 'nfe.sefaz.mt.gov.br/nfews/v2/services/NfeConsulta4?wsdl',
'INUTILIZACAO': 'nfe.sefaz.mt.gov.br/nfews/v2/services/NfeInutilizacao4?wsdl',
'EVENTOS': 'nfe.sefaz.mt.gov.br/nfews/v2/services/RecepcaoEvento4?wsdl',
'CADASTRO': 'nfe.sefaz.mt.gov.br/nfews/v2/services/CadConsultaCadastro4?wsdl',
'HTTPS': 'https://nfe.', 'HTTPS': 'https://nfe.',
'HOMOLOGACAO': 'https://homologacao.' 'HOMOLOGACAO': 'https://homologacao.'
}, },

Loading…
Cancel
Save