From 1f072cb822c24218e61901fdb300c6789ffcfb0a Mon Sep 17 00:00:00 2001 From: Lucas Cardoso Date: Mon, 13 Nov 2017 17:14:45 -0300 Subject: [PATCH] Metodo com faz a consulta da nota ja assinada --- pynfe/processamento/comunicacao.py | 29 +++++++++++++++++++++++++---- 1 file changed, 25 insertions(+), 4 deletions(-) diff --git a/pynfe/processamento/comunicacao.py b/pynfe/processamento/comunicacao.py index 41b2a1d..9cac623 100644 --- a/pynfe/processamento/comunicacao.py +++ b/pynfe/processamento/comunicacao.py @@ -177,6 +177,24 @@ class ComunicacaoSefaz(Comunicacao): xml = self._construir_xml_soap('NFeConsultaProtocolo4', raiz) return str(etree.tostring(xml), 'utf-8') + def consulta_nota_assinada(self, xml, modelo, chave_assinatura): + """ + Este método oferece a consulta da situação da NF-e/NFC-e na Base de Dados do Portal + da Secretaria de Fazenda Estadual. + :param xml: XML da nota + :param modelo: Modelo da nota + :param chave_assinatura: Tupla (certificado, chave) A3 + :return: + """ + + if type(xml) == str: + xml = etree.fromstring(xml) + + # url do serviço + url = self._get_url(modelo=modelo, consulta='CHAVE') + + return self._post(url, xml, chave_assinatura) + def consulta_notas_cnpj(self, cnpj, nsu=0): """ “Serviço de Consulta da Relação de Documentos Destinados” para um determinado CNPJ de @@ -499,10 +517,13 @@ class ComunicacaoSefaz(Comunicacao): 'Accept': 'application/soap+xml; charset=utf-8;', } - def _post(self, url, xml): - certificado_a1 = CertificadoA1(self.certificado) - chave, cert = certificado_a1.separar_arquivo(self.certificado_senha, caminho=True) - chave_cert = (cert, chave) + def _post(self, url, xml, _chave_cert=None): + if not _chave_cert: + certificado_a1 = CertificadoA1(self.certificado) + chave, cert = certificado_a1.separar_arquivo(self.certificado_senha, caminho=True) + chave_cert = (cert, chave) + else: + chave_cert = _chave_cert # Abre a conexão HTTPS try: xml_declaration = ''