From d748e5551e99823c0def24457d474f0c6a377c57 Mon Sep 17 00:00:00 2001 From: Bruno Vieira Costa Date: Wed, 13 Nov 2024 21:28:36 -0300 Subject: [PATCH] fix errors --- abstra_notas/assinatura.py | 2 +- abstra_notas/nfse/sp/sao_paulo/README.md | 8 +++++--- abstra_notas/nfse/sp/sao_paulo/cancelamento_nfe.py | 4 ---- .../nfse/sp/sao_paulo/consulta_cnpj_retorno.py | 6 ++++++ abstra_notas/nfse/sp/sao_paulo/consulta_cnpj_test.py | 4 +--- abstra_notas/nfse/sp/sao_paulo/consulta_nfe_test.py | 11 ----------- abstra_notas/nfse/sp/sao_paulo/envio_rps.py | 1 - .../nfse/sp/sao_paulo/exemplos/gerar_notas_em_lote.py | 3 +-- abstra_notas/validacoes/xml_iguais.py | 2 +- 9 files changed, 15 insertions(+), 26 deletions(-) diff --git a/abstra_notas/assinatura.py b/abstra_notas/assinatura.py index c2f3fa0..a5454d3 100644 --- a/abstra_notas/assinatura.py +++ b/abstra_notas/assinatura.py @@ -6,7 +6,7 @@ from cryptography.hazmat.backends import default_backend from pathlib import Path from tempfile import NamedTemporaryFile -from lxml.etree import Element, tostring, fromstring, ElementBase +from lxml.etree import tostring, fromstring, ElementBase import xmlsec diff --git a/abstra_notas/nfse/sp/sao_paulo/README.md b/abstra_notas/nfse/sp/sao_paulo/README.md index ad8608c..ab94e56 100644 --- a/abstra_notas/nfse/sp/sao_paulo/README.md +++ b/abstra_notas/nfse/sp/sao_paulo/README.md @@ -8,7 +8,9 @@ A integração é feita atraves da [Nota do Milhão](https://notadomilhao.prefei - [Gerar nota](/abstra_notas/nfse/sp/sao_paulo/exemplos/gerar_nota.py) - [Gerar notas em lote](/abstra_notas/nfse/sp/sao_paulo/exemplos/gerar_notas_em_lote.py) -- [Consultar CNPJ](/abstra_notas/nfse/sp/sao_paulo/exemplos/consulta_cnpj.py) - [Cancelar nota](/abstra_notas/nfse/sp/sao_paulo/exemplos/cancelamento_nfe.py) -- Consultar nota (Em breve) -- Envio de lote (Em breve) \ No newline at end of file +- [Consultar CNPJ](/abstra_notas/nfse/sp/sao_paulo/exemplos/consulta_cnpj.py) +- [Consultar nota emitida (por RPS)](/abstra_notas/nfse/sp/sao_paulo/exemplos/consultar_nota.py) +- Consultar notas emitidas (por lote) (Em breve) +- Consultar notas emitidas (por período) (Em breve) +- Consultar notas recebidas (Em breve) \ No newline at end of file diff --git a/abstra_notas/nfse/sp/sao_paulo/cancelamento_nfe.py b/abstra_notas/nfse/sp/sao_paulo/cancelamento_nfe.py index 6af19b0..bd617f1 100644 --- a/abstra_notas/nfse/sp/sao_paulo/cancelamento_nfe.py +++ b/abstra_notas/nfse/sp/sao_paulo/cancelamento_nfe.py @@ -64,7 +64,3 @@ def assinatura(self, assinador: Assinador) -> str: signed_template = assinador.assinar_bytes_rsa_sh1(template_bytes) return base64.b64encode(signed_template).decode("ascii") - - @property - def remetente_tipo(self) -> Literal["CPF", "CNPJ"]: - return cpf_ou_cnpj(self.remetente) diff --git a/abstra_notas/nfse/sp/sao_paulo/consulta_cnpj_retorno.py b/abstra_notas/nfse/sp/sao_paulo/consulta_cnpj_retorno.py index 389b36c..6a85aef 100644 --- a/abstra_notas/nfse/sp/sao_paulo/consulta_cnpj_retorno.py +++ b/abstra_notas/nfse/sp/sao_paulo/consulta_cnpj_retorno.py @@ -1,6 +1,7 @@ from dataclasses import dataclass from .retorno import Retorno from lxml.etree import Element, SubElement, ElementBase +from .erro import Erro @dataclass @@ -43,5 +44,10 @@ def gerar_xml(self): @staticmethod def parse_xml(element: ElementBase) -> "RetornoConsultaCNPJ": sucesso = element.find("Sucesso").text == "true" + if not sucesso: + raise Erro( + codigo=int(element.find("Codigo").text), + descricao=element.find("Descricao").text, + ) detalhe = Detalhe.parse_xml(element.find("Detalhe")) return RetornoConsultaCNPJ(detalhe=detalhe) diff --git a/abstra_notas/nfse/sp/sao_paulo/consulta_cnpj_test.py b/abstra_notas/nfse/sp/sao_paulo/consulta_cnpj_test.py index 6c799e2..dc91d7f 100644 --- a/abstra_notas/nfse/sp/sao_paulo/consulta_cnpj_test.py +++ b/abstra_notas/nfse/sp/sao_paulo/consulta_cnpj_test.py @@ -1,10 +1,8 @@ from unittest import TestCase from .consulta_cnpj import ConsultaCNPJ, RetornoConsultaCNPJ from pathlib import Path -from lxml.etree import XMLSchema, fromstring -from datetime import date +from lxml.etree import fromstring from .cliente import ClienteMock -import re from abstra_notas.assinatura import AssinadorMock from abstra_notas.validacoes.xml_iguais import assert_xml_iguais diff --git a/abstra_notas/nfse/sp/sao_paulo/consulta_nfe_test.py b/abstra_notas/nfse/sp/sao_paulo/consulta_nfe_test.py index 2e0d870..2968175 100644 --- a/abstra_notas/nfse/sp/sao_paulo/consulta_nfe_test.py +++ b/abstra_notas/nfse/sp/sao_paulo/consulta_nfe_test.py @@ -136,14 +136,3 @@ def test_exemplo(self): ] ), ) - - def test_consulta_nfe_invalida(self): - assinador = AssinadorMock() - pedido = ConsultaNFe( - remetente="99999997000100", - chave_nfe_inscricao_prestador="00000000", - chave_nfe_numero_nfe=0, - chave_rps_inscricao_prestador="00000000", - chave_rps_serie_rps="AA", - chave_rps_numero_rps=0, - ) diff --git a/abstra_notas/nfse/sp/sao_paulo/envio_rps.py b/abstra_notas/nfse/sp/sao_paulo/envio_rps.py index 0a93e22..afcd7ae 100644 --- a/abstra_notas/nfse/sp/sao_paulo/envio_rps.py +++ b/abstra_notas/nfse/sp/sao_paulo/envio_rps.py @@ -8,7 +8,6 @@ from abstra_notas.validacoes.cpfcnpj import normalizar_cpf_ou_cnpj, cpf_ou_cnpj from abstra_notas.validacoes.cep import normalizar_cep from abstra_notas.validacoes.tipo_logradouro import TipoLogradouro -from .codigos_de_servico import codigos_de_servico_validos from datetime import date from .remessa import Remessa from .pedido import Pedido diff --git a/abstra_notas/nfse/sp/sao_paulo/exemplos/gerar_notas_em_lote.py b/abstra_notas/nfse/sp/sao_paulo/exemplos/gerar_notas_em_lote.py index c0b039f..67ec7c8 100644 --- a/abstra_notas/nfse/sp/sao_paulo/exemplos/gerar_notas_em_lote.py +++ b/abstra_notas/nfse/sp/sao_paulo/exemplos/gerar_notas_em_lote.py @@ -1,6 +1,5 @@ from abstra_notas.nfse.sp.sao_paulo import Cliente, EnvioLoteRPS, RPS -from abstra_notas.validacoes.tipo_logradouro import TipoLogradouro -from datetime import date, timedelta +from datetime import date from dotenv import load_dotenv from os import getenv from pathlib import Path diff --git a/abstra_notas/validacoes/xml_iguais.py b/abstra_notas/validacoes/xml_iguais.py index 61af048..610716c 100644 --- a/abstra_notas/validacoes/xml_iguais.py +++ b/abstra_notas/validacoes/xml_iguais.py @@ -1,4 +1,4 @@ -from lxml.etree import fromstring, ElementBase, tostring +from lxml.etree import ElementBase from typing import List