Skip to content

Commit

Permalink
ambiente autorizador de contingencia para nfe
Browse files Browse the repository at this point in the history
  • Loading branch information
antoniospneto committed May 8, 2024
1 parent ea5c705 commit 7938275
Showing 1 changed file with 69 additions and 14 deletions.
83 changes: 69 additions & 14 deletions src/erpbrasil/edoc/nfe.py
Original file line number Diff line number Diff line change
Expand Up @@ -166,14 +166,16 @@
SVC_AN = {
AMBIENTE_PRODUCAO: {
"servidor": "www.svc.fazenda.gov.br",
WS_NFE_INUTILIZACAO: "NFeInutilizacao4/NFeInutilizacao4.asmx?wsdl",
WS_NFE_CONSULTA: "NFeConsultaProtocolo4/NFeConsultaProtocolo4.asmx?wsdl", # noqa
WS_NFE_SITUACAO: "NFeStatusServico4/NFeStatusServico4.asmx?wsdl",
WS_NFE_RECEPCAO_EVENTO: "NFeRecepcaoEvento4/NFeRecepcaoEvento4.asmx?wsdl", # noqa
WS_NFE_AUTORIZACAO: "NFeAutorizacao4/NFeAutorizacao4.asmx?wsdl",
WS_NFE_RET_AUTORIZACAO: "NFeRetAutorizacao4/NFeRetAutorizacao4.asmx?wsdl", # noqa
},
AMBIENTE_HOMOLOGACAO: {
"servidor": "hom.svc.fazenda.gov.br",
"servidor": "hom.sefazvirtual.fazenda.gov.br",
WS_NFE_INUTILIZACAO: "NFeInutilizacao4/NFeInutilizacao4.asmx?wsdl",
WS_NFE_CONSULTA: "NFeConsultaProtocolo4/NFeConsultaProtocolo4.asmx?wsdl", # noqa
WS_NFE_SITUACAO: "NFeStatusServico4/NFeStatusServico4.asmx?wsdl",
WS_NFE_RECEPCAO_EVENTO: "NFeRecepcaoEvento4/NFeRecepcaoEvento4.asmx?wsdl", # noqa
Expand Down Expand Up @@ -675,10 +677,16 @@
"AN": AN,
}

CONTINGENCIA_WS = {"SVC-AN": SVC_AN, "SVC-RS": SVC_RS}


def localizar_url(servico, estado, mod="55", ambiente=2):
def localizar_url(servico, estado, mod="55", ambiente=2, autorizador_contigencia=None):
sigla = SIGLA_ESTADO[estado]
ws = ESTADO_WS[sigla]

if autorizador_contigencia:
ws = CONTINGENCIA_WS[autorizador_contigencia]
else:
ws = ESTADO_WS[sigla]

if servico in (WS_DFE_DISTRIBUICAO, WS_DOWNLOAD_NFE):
ws = AN
Expand Down Expand Up @@ -718,16 +726,25 @@ class NFe(DocumentoEletronico):
_namespace = "http://www.portalfiscal.inf.br/nfe"
_edoc_situacao_arquivo_recebido_com_sucesso = "103"
_edoc_situacao_servico_em_operacao = "107"
_consulta_servico_ao_enviar = True
_consulta_documento_antes_de_enviar = True
_consulta_servico_ao_enviar = False
_consulta_documento_antes_de_enviar = False
_maximo_tentativas_consulta_recibo = 5

def __init__(self, transmissao, uf, versao="4.00", ambiente="2", mod="55"):
def __init__(
self,
transmissao,
uf,
versao="4.00",
ambiente="2",
mod="55",
autorizador_contigencia=None,
):
super().__init__(transmissao)
self.versao = str(versao)
self.ambiente = str(ambiente)
self.uf = int(uf)
self.mod = str(mod)
self.autorizador_contigencia = autorizador_contigencia

def _edoc_situacao_ja_enviado(self, proc_consulta):
if proc_consulta.resposta.cStat in ("100", "110", "150", "301", "302"):
Expand All @@ -748,7 +765,13 @@ def status_servico(self):
return self._post(
raiz,
# 'https://hom.sefazvirtual.fazenda.gov.br/NFeStatusServico4/NFeStatusServico4.asmx?wsdl',
localizar_url(WS_NFE_SITUACAO, str(self.uf), self.mod, int(self.ambiente)),
localizar_url(
WS_NFE_SITUACAO,
str(self.uf),
self.mod,
int(self.ambiente),
self.autorizador_contigencia,
),
"nfeStatusServicoNF",
retConsStatServ,
)
Expand All @@ -764,7 +787,13 @@ def consulta_documento(self, chave):
return self._post(
raiz,
# 'https://hom.sefazvirtual.fazenda.gov.br/NFeConsultaProtocolo4/NFeConsultaProtocolo4.asmx?wsdl',
localizar_url(WS_NFE_CONSULTA, str(self.uf), self.mod, int(self.ambiente)),
localizar_url(
WS_NFE_CONSULTA,
str(self.uf),
self.mod,
int(self.ambiente),
self.autorizador_contigencia,
),
"nfeConsultaNF",
retConsSitNFe,
)
Expand Down Expand Up @@ -796,7 +825,11 @@ def envia_documento(self, edoc):
xml_envio_etree,
# 'https://hom.sefazvirtual.fazenda.gov.br/NFeAutorizacao4/NFeAutorizacao4.asmx?wsdl',
localizar_url(
WS_NFE_AUTORIZACAO, str(self.uf), self.mod, int(self.ambiente)
WS_NFE_AUTORIZACAO,
str(self.uf),
self.mod,
int(self.ambiente),
self.autorizador_contigencia,
),
"nfeAutorizacaoLote",
retEnviNFe,
Expand All @@ -813,7 +846,11 @@ def envia_inutilizacao(self, evento):
return self._post(
xml_envio_etree,
localizar_url(
WS_NFE_INUTILIZACAO, str(self.uf), self.mod, int(self.ambiente)
WS_NFE_INUTILIZACAO,
str(self.uf),
self.mod,
int(self.ambiente),
self.autorizador_contigencia,
),
"nfeInutilizacaoNF",
retInutNFe,
Expand All @@ -835,7 +872,11 @@ def consulta_recibo(self, numero=False, proc_envio=False):
return self._post(
raiz,
localizar_url(
WS_NFE_RET_AUTORIZACAO, str(self.uf), self.mod, int(self.ambiente)
WS_NFE_RET_AUTORIZACAO,
str(self.uf),
self.mod,
int(self.ambiente),
self.autorizador_contigencia,
),
# 'ws/nferetautorizacao4.asmx'
"nfeRetAutorizacaoLote",
Expand All @@ -862,7 +903,11 @@ def enviar_lote_evento(self, lista_eventos, numero_lote=False):
return self._post(
xml_envio_etree,
localizar_url(
WS_NFE_RECEPCAO_EVENTO, str(self.uf), self.mod, int(self.ambiente)
WS_NFE_RECEPCAO_EVENTO,
str(self.uf),
self.mod,
int(self.ambiente),
self.autorizador_contigencia,
),
"nfeRecepcaoEvento",
retEnvEvento,
Expand Down Expand Up @@ -1011,7 +1056,11 @@ def consultar_distribuicao(
return self._post(
raiz,
localizar_url(
WS_DFE_DISTRIBUICAO, str(self.uf), self.mod, int(self.ambiente)
WS_DFE_DISTRIBUICAO,
str(self.uf),
self.mod,
int(self.ambiente),
self.autorizador_contigencia,
),
"nfeDistDFeInteresse",
retDistDFeInt,
Expand Down Expand Up @@ -1057,7 +1106,13 @@ def consultar_cadastro(self, uf, cnpj=None, cpf=None, ie=None):

return self._post(
raiz,
localizar_url(WS_NFE_CADASTRO, str(self.uf), self.mod, int(self.ambiente)),
localizar_url(
WS_NFE_CADASTRO,
str(self.uf),
self.mod,
int(self.ambiente),
self.autorizador_contigencia,
),
"consultaCadastro",
retConsCad,
)

0 comments on commit 7938275

Please sign in to comment.