diff --git a/pynfe/processamento/comunicacao.py b/pynfe/processamento/comunicacao.py index a0f1f8b..38d6a1d 100644 --- a/pynfe/processamento/comunicacao.py +++ b/pynfe/processamento/comunicacao.py @@ -17,7 +17,6 @@ from pynfe.utils.flags import ( from pynfe.utils.webservices import NFE, NFCE, NFSE from pynfe.entidades.certificado import CertificadoA1 from .assinatura import AssinaturaA1 -from pynfe.utils.descompactar import DescompactaGzip class Comunicacao(object): @@ -291,7 +290,7 @@ class ComunicacaoSefaz(Comunicacao): 'uf': uf, 'ano': ano, 'cnpj': cnpj, - 'modelo': '55', + 'modelo': '55' if modelo == 'nfe' else '65', # 55=NF-e; 65=NFC-e; 'serie': serie.zfill(3), 'num_ini': str(numero_inicial).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"') # Estados que utilizam outros ambientes 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'] if self.uf.upper() in lista_svrs: if self._ambiente == 1: diff --git a/pynfe/processamento/serializacao.py b/pynfe/processamento/serializacao.py index d1fc2c8..36cafc6 100644 --- a/pynfe/processamento/serializacao.py +++ b/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, '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, '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 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 @@ -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. # 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 - lista_uf_padrao = ['PR', 'CE', 'RS', 'RJ', 'RO'] + lista_uf_padrao = ['PR', 'CE', 'RS', 'RJ', 'RO', 'DF'] if uf.upper() in lista_uf_padrao: qrcode = NFCE[uf.upper()]['QR'] + url url_chave = NFCE[uf.upper()]['URL'] diff --git a/pynfe/utils/webservices.py b/pynfe/utils/webservices.py index 433a582..bf08aeb 100644 --- a/pynfe/utils/webservices.py +++ b/pynfe/utils/webservices.py @@ -26,12 +26,12 @@ NFCE = { 'AM': { # csc_homologacao = '0123456789' # 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?', 'URL': 'sefaz.am.gov.br/nfceweb/formConsulta.do', 'HTTPS': 'http://sistemas.', @@ -107,7 +107,7 @@ NFCE = { 'QR': 'http://nfce.set.rn.gov.br/consultarNFCe.aspx?', 'HTTPS': '', 'HOMOLOGACAO': '' - + }, 'PB': { 'STATUS': '', @@ -127,7 +127,7 @@ NFCE = { 'EVENTOS': '', 'QR': 'sefaz.pe.gov.br/nfce/consulta?', 'HTTPS': 'http://nfce.', - 'HOMOLOGACAO': 'http://nfce.', + 'HOMOLOGACAO': 'http://nfcehomolog.', 'URL': 'sefaz.pe.gov.br/nfce/consulta' }, 'AL': { @@ -155,7 +155,7 @@ NFCE = { 'HTTPS': 'http://nfe.', 'HOMOLOGACAO': 'http://hnfe.', 'URL': 'http://hinternet.sefaz.ba.gov.br/nfce/consulta' - }, + }, 'MG': { 'STATUS': '', 'AUTORIZACAO': '', @@ -172,7 +172,10 @@ NFCE = { 'CHAVE': '', 'INUTILIZACAO': '', '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': { 'STATUS': '', @@ -181,16 +184,16 @@ NFCE = { 'CHAVE': '', 'INUTILIZACAO': '', 'EVENTOS': '', - 'QR': 'http://www4.fazenda.rj.gov.br/consultaNFCe/QRCode?', + 'QR': 'http://www4.fazenda.rj.gov.br/consultaNFCe/QRCode?', 'URL': 'www.nfce.fazenda.rj.gov.br/consulta' }, - # Os Web Services de homologação da NFC-e 4.00 são: - # https://homologacao.nfce.fazenda.sp.gov.br/ws/NFeAutorizacao4.asmx - # https://homologacao.nfce.fazenda.sp.gov.br/ws/NFeStatusServico4.asmx - # https://homologacao.nfce.fazenda.sp.gov.br/ws/NFeConsultaProtocolo4.asmx - # https://homologacao.nfce.fazenda.sp.gov.br/ws/NFeRetAutorizacao4.asmx - # https://homologacao.nfce.fazenda.sp.gov.br/ws/NFeRecepcaoEvento4.asmx - # https://homologacao.nfce.fazenda.sp.gov.br/ws/NFeInutilizacao4.asmx + # Os Web Services de homologação da NFC-e 4.00 são: + # https://homologacao.nfce.fazenda.sp.gov.br/ws/NFeAutorizacao4.asmx + # https://homologacao.nfce.fazenda.sp.gov.br/ws/NFeStatusServico4.asmx + # https://homologacao.nfce.fazenda.sp.gov.br/ws/NFeConsultaProtocolo4.asmx + # https://homologacao.nfce.fazenda.sp.gov.br/ws/NFeRetAutorizacao4.asmx + # https://homologacao.nfce.fazenda.sp.gov.br/ws/NFeRecepcaoEvento4.asmx + # https://homologacao.nfce.fazenda.sp.gov.br/ws/NFeInutilizacao4.asmx 'SP': { 'STATUS': 'nfce.fazenda.sp.gov.br/ws/NFeStatusServico4.asmx', 'AUTORIZACAO': 'nfce.fazenda.sp.gov.br/ws/NFeAutorizacao4.asmx', @@ -263,6 +266,10 @@ NFCE = { 'HTTPS': 'http://nfe.', '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 'SVRS': { 'STATUS': 'svrs.rs.gov.br/ws/NfeStatusServico/NfeStatusServico4.asmx', @@ -289,12 +296,12 @@ NFE = { 'HOMOLOGACAO': 'https://hom' }, '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', 'HTTPS': 'https://', 'HOMOLOGACAO': 'https://hom' @@ -309,7 +316,7 @@ NFE = { 'CHAVE': 'sefaz.ce.gov.br/nfe4/services/NFeConsultaProtocolo4?WSDL', 'INUTILIZACAO': 'sefaz.ce.gov.br/nfe4/services/NFeInutilizacao4?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', 'HTTPS': 'https://nfe.', 'HOMOLOGACAO': 'https://nfeh.' @@ -335,23 +342,23 @@ NFE = { 'CADASTRO': 'nfe.sefaz.ba.gov.br/webservices/CadConsultaCadastro4/CadConsultaCadastro4.asmx', 'HTTPS': 'https://', 'HOMOLOGACAO': 'https://h' - }, + }, 'MG': { 'STATUS': 'nfe.fazenda.mg.gov.br/nfe2/services/NFeStatusServico4', 'AUTORIZACAO': 'nfe.fazenda.mg.gov.br/nfe2/services/NFeAutorizacao4', 'RECIBO': 'nfe.fazenda.mg.gov.br/nfe2/services/NFeRetAutorizacao4', 'CHAVE': 'nfe.fazenda.mg.gov.br/nfe2/services/NFeConsulta4', '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', 'HTTPS': 'https://', 'HOMOLOGACAO': 'https://h' }, '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', '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', 'EVENTOS': 'nfe.fazenda.sp.gov.br/ws/nferecepcaoevento4.asmx', 'CADASTRO': 'nfe.fazenda.sp.gov.br/ws/cadconsultacadastro4.asmx', @@ -377,7 +384,7 @@ NFE = { 'CHAVE': 'sefazrs.rs.gov.br/ws/NfeConsulta/NfeConsulta4.asmx', 'INUTILIZACAO': 'sefazrs.rs.gov.br/ws/nfeinutilizacao/nfeinutilizacao4.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', 'DESTINADAS': 'sefazrs.rs.gov.br/ws/nfeConsultaDest/nfeConsultaDest.asmx', 'HTTPS': 'https://nfe.', @@ -390,18 +397,18 @@ NFE = { 'CHAVE': 'nfe.ms.gov.br/ws/NFeConsultaProtocolo4', 'INUTILIZACAO': 'nfe.ms.gov.br/ws/NFeInutilizacao4', '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://', 'HOMOLOGACAO': 'https://homologacao.' }, '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.', 'HOMOLOGACAO': 'https://homologacao.' }, @@ -461,7 +468,7 @@ NFE = { # Nfs-e NFSE = { - # + # 'BETHA': { 'AUTORIZACAO':'GerarNfse', 'CANCELAR':'CancelarNfse', @@ -485,4 +492,4 @@ NFSE = { 'HTTPS':'https://producao.ginfes.com.br/ServiceGinfesImpl?wsdl', 'HOMOLOGACAO':'https://homologacao.ginfes.com.br/ServiceGinfesImpl?wsdl' } -} \ No newline at end of file +}