diff --git a/pynfe/entidades/notafiscal.py b/pynfe/entidades/notafiscal.py index 5a00190..62db290 100644 --- a/pynfe/entidades/notafiscal.py +++ b/pynfe/entidades/notafiscal.py @@ -923,6 +923,10 @@ class NotaFiscalServico(Entidade): simples = int() # 1-Sim; 2-Não # Incentivo Fiscal incentivo = int() # 1-Sim; 2-Não + # Serie + serie = str() + # Tipo + tipo = str() def __init__(self, *args, **kwargs): diff --git a/pynfe/processamento/comunicacao.py b/pynfe/processamento/comunicacao.py index c8b63e8..eb528db 100644 --- a/pynfe/processamento/comunicacao.py +++ b/pynfe/processamento/comunicacao.py @@ -381,6 +381,24 @@ class ComunicacaoNfse(Comunicacao): retorno = self._post(url, xml) return retorno + def consulta_nota(self, autorizador, nota): + if autorizador.upper() == 'BETHA': + self._namespace = NAMESPACE_BETHA + self._versao = '2.02' + # url do serviço + url = self._get_url(autorizador) + NFSE[autorizador.upper()]['CONSULTA_RPS'] + # consulta + raiz = etree.Element('ConsultarNfsePorRps') + # cabecalho + raiz.append(self._cabecalho_soap()) + dados = etree.SubElement(raiz, 'nfseDadosMsg') + dados.append(nota) + # xml soap + xml = self._construir_xml(raiz) + + retorno = self._post(url, xml) + return retorno + def _cabecalho_soap(self): u"""Monta o XML do cabeçalho da requisição SOAP""" diff --git a/pynfe/processamento/serializacao.py b/pynfe/processamento/serializacao.py index 4797327..4f35d08 100644 --- a/pynfe/processamento/serializacao.py +++ b/pynfe/processamento/serializacao.py @@ -677,6 +677,23 @@ class SerializacaoNfse(Serializacao): else: return raiz + def _serializar_consulta(self, nfse, tag_raiz='ConsultarNfseRpsEnvio', retorna_string=False): + if nfse.autorizador.upper() == 'BETHA': + namespace = NAMESPACE_BETHA + #versao = '2.02' + raiz = etree.Element(tag_raiz, xmlns=namespace) + identificacao = etree.SubElement(raiz, 'IdentificacaoRps') + etree.SubElement(identificacao, 'Numero').text = str(nfse.identificador) + etree.SubElement(identificacao, 'Serie').text = nfse.serie + etree.SubElement(identificacao, 'Tipo').text = nfse.tipo + raiz.append(self._serializar_emitente(nfse.emitente)) + + if retorna_string: + return etree.tostring(raiz, encoding="unicode", pretty_print=True) + else: + return raiz + + class SerializacaoPipes(Serializacao): """Serialização utilizada pela SEFAZ-SP para a importação de notas."""