diff --git a/pytrustnfe/nfse/imperial/__init__.py b/pytrustnfe/nfse/imperial/__init__.py
index 5795629..fba9f90 100644
--- a/pytrustnfe/nfse/imperial/__init__.py
+++ b/pytrustnfe/nfse/imperial/__init__.py
@@ -3,8 +3,11 @@
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
import os
+import requests
from lxml import etree
-from pytrustnfe import HttpClient
+from requests import Session
+from zeep import Client
+from zeep.transports import Transport
from pytrustnfe.xml import render_xml, sanitize_response
@@ -17,58 +20,41 @@ def _render(certificado, method, **kwargs):
def _send(certificado, method, **kwargs):
base_url = ''
if kwargs['ambiente'] == 'producao':
- base_url = 'https://nfe.etransparencia.com.br/rj.petropolis/webservice/aws_nfe.aspx' # noqa
+ base_url = 'https://petropolis.sigiss.com.br/petropolis/ws/sigiss_ws.php' # noqa
else:
- base_url = 'https://nfehomologacao.etransparencia.com.br/rj.petropolis/webservice/aws_nfe.aspx' # noqa
- xml_send = kwargs["xml"]
- path = os.path.join(os.path.dirname(__file__), 'templates')
- soap = render_xml(path, 'SoapRequest.xml', False, soap_body=xml_send.decode())
- client = HttpClient(base_url)
- response = client.post_soap(soap, 'NFeaction/AWS_NFE.%s' % method)
- response, obj = sanitize_response(response)
- return {
- 'sent_xml': xml_send.decode(),
- 'received_xml': response,
- 'object': obj
- }
-
-
-def xml_processa_rps(certificado, **kwargs):
- return _render(certificado, 'PROCESSARPS', **kwargs)
-
-
-def processa_rps(certificado, **kwargs):
- if "xml" not in kwargs:
- kwargs['xml'] = xml_processa_rps(certificado, **kwargs)
- return _send(certificado, 'PROCESSARPS', **kwargs)
-
+ raise Exception('Não existe ambiente de homologação!')
-def xml_consulta_protocolo(certificado, **kwargs):
- return _render(certificado, 'CONSULTAPROTOCOLO', **kwargs)
+ xml_send = kwargs["xml"].decode('utf-8')
+ headers = {
+ 'SOAPAction': "urn:sigiss_ws#%s" % method,
+ 'Content-Type': 'text/xml; charset="utf-8"'
+ }
+ r = requests.post(base_url, data=xml_send, headers=headers)
+ response, obj = sanitize_response(r.text.strip())
-def consulta_protocolo(certificado, **kwargs):
- if "xml" not in kwargs:
- kwargs['xml'] = xml_consulta_protocolo(certificado, **kwargs)
- return _send(certificado, 'CONSULTAPROTOCOLO', **kwargs)
+ return {
+ 'sent_xml': xml_send,
+ 'received_xml': response,
+ 'object': obj.Body
+ }
-def xml_consulta_notas_protocolo(certificado, **kwargs):
- return _render(certificado, 'CONSULTANOTASPROTOCOLO', **kwargs)
+def xml_gerar_nota(certificado, **kwargs):
+ return _render(certificado, 'GerarNota', **kwargs)
-def consulta_notas_protocolo(certificado, **kwargs):
+def gerar_nota(certificado, **kwargs):
if "xml" not in kwargs:
- kwargs['xml'] = xml_consulta_notas_protocolo(certificado, **kwargs)
- return _send(certificado, 'CONSULTANOTASPROTOCOLO', **kwargs)
+ kwargs['xml'] = xml_gerar_nota(certificado, **kwargs)
+ return _send(certificado, 'GerarNota', **kwargs)
-def xml_cancelar_nfse(certificado, **kwargs):
- return _render(certificado, 'CANCELANOTAELETRONICA', **kwargs)
+def xml_cancelar_nota(certificado, **kwargs):
+ return _render(certificado, 'CancelarNota', **kwargs)
-def cancelar_nfse(certificado, **kwargs):
+def cancelar_nota(certificado, **kwargs):
if "xml" not in kwargs:
- kwargs['xml'] = xml_cancelar_nfse(certificado, **kwargs)
- return _send(certificado, 'CANCELANOTAELETRONICA', **kwargs)
-
+ kwargs['xml'] = xml_cancelar_nota(certificado, **kwargs)
+ return _send(certificado, 'CancelarNota', **kwargs)
diff --git a/pytrustnfe/nfse/imperial/templates/CANCELANOTAELETRONICA.xml b/pytrustnfe/nfse/imperial/templates/CANCELANOTAELETRONICA.xml
deleted file mode 100644
index 3afb262..0000000
--- a/pytrustnfe/nfse/imperial/templates/CANCELANOTAELETRONICA.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
- {{ cancelamento.codigo_usuario }}
- {{ cancelamento.codigo_contribuinte }}
-
-
- {{ cancelamento.serie_nota }}
- {{ cancelamento.numero_nota }}
- {{ cancelamento.serie_rps }}
- {{ cancelamento.numero_rps }}
- {{ cancelamento.valor }}
- {{ cancelamento.motivo }}
- {{ cancelamento.cancelar_guia }}
-
-
-
diff --git a/pytrustnfe/nfse/imperial/templates/CONSULTANOTASPROTOCOLO.xml b/pytrustnfe/nfse/imperial/templates/CONSULTANOTASPROTOCOLO.xml
deleted file mode 100644
index 30ea3d6..0000000
--- a/pytrustnfe/nfse/imperial/templates/CONSULTANOTASPROTOCOLO.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
- {{ consulta.protocolo }}
-
- {{ consulta.codigo_usuario }}
- {{ consulta.codigo_contribuinte }}
-
-
-
diff --git a/pytrustnfe/nfse/imperial/templates/CONSULTAPROTOCOLO.xml b/pytrustnfe/nfse/imperial/templates/CONSULTAPROTOCOLO.xml
deleted file mode 100644
index 09765e5..0000000
--- a/pytrustnfe/nfse/imperial/templates/CONSULTAPROTOCOLO.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
- {{ consulta.protocolo }}
-
- {{ consulta.codigo_usuario }}
- {{ consulta.codigo_contribuinte }}
-
-
-
diff --git a/pytrustnfe/nfse/imperial/templates/CancelarNota.xml b/pytrustnfe/nfse/imperial/templates/CancelarNota.xml
new file mode 100644
index 0000000..8edd597
--- /dev/null
+++ b/pytrustnfe/nfse/imperial/templates/CancelarNota.xml
@@ -0,0 +1,14 @@
+
+
+
+
+ {{ cancelamento.ccm }}
+ {{ cancelamento.cnpj }}
+ {{ cancelamento.senha }}
+ {{ cancelamento.nota }}
+ {{ cancelamento.motivo }}
+ {{ cancelamento.email }}
+
+
+
+
diff --git a/pytrustnfe/nfse/imperial/templates/GerarNota.xml b/pytrustnfe/nfse/imperial/templates/GerarNota.xml
new file mode 100644
index 0000000..c0a09c4
--- /dev/null
+++ b/pytrustnfe/nfse/imperial/templates/GerarNota.xml
@@ -0,0 +1,43 @@
+
+
+
+
+ {{ nfse.ccm }}
+ {{ nfse.cnpj }}
+ {{ nfse.senha }}
+ {{ nfse.crc }}
+ {{ nfse.crc_estado }}
+ {{ nfse.aliquota_simples }}
+ {{ nfse.id_sis_legado }}
+ {{ nfse.servico }}
+ {{ nfse.situacao }}
+ {{ nfse.valor }}
+ {{ nfse.base }}
+ {{ nfse.descricaoNF }}
+ {{ nfse.tomador_tipo }}
+ {{ nfse.tomador_cnpj }}
+ {{ nfse.tomador_email }}
+ {{ nfse.tomador_ie }}
+ {{ nfse.tomador_razao }}
+ {{ nfse.tomador_fantasia }}
+ {{ nfse.tomador_endereco }}
+ {{ nfse.tomador_endereco }}
+ {{ nfse.tomador_complemento }}
+ {{ nfse.tomador_bairro }}
+ {{ nfse.tomador_CEP }}
+ {{ nfse.tomador_cod_cidade }}
+ {{ nfse.tomador_fone }}
+ {{ nfse.tomador_ramal }}
+ {{ nfse.tomador_fax }}
+ {{ nfse.outro_municipio }}
+ {{ nfse.cod_outro_municipio }}
+ {{ nfse.retencao_iss }}
+ {{ nfse.pis }}
+ {{ nfse.cofins }}
+ {{ nfse.inss }}
+ {{ nfse.irrf }}
+ {{ nfse.csll }}
+
+
+
+
diff --git a/pytrustnfe/nfse/imperial/templates/PROCESSARPS.xml b/pytrustnfe/nfse/imperial/templates/PROCESSARPS.xml
deleted file mode 100644
index 3cfb27a..0000000
--- a/pytrustnfe/nfse/imperial/templates/PROCESSARPS.xml
+++ /dev/null
@@ -1,81 +0,0 @@
-
-
-
- {{ nfse.codigo_usuario }}
- {{ nfse.codigo_contribuinte }}
-
-
- {{ nfse.ano }}
- {{ nfse.mes }}
- {{ nfse.cnpj_prestador }}
- {{ nfse.data_emissao }}
- {{ nfse.data_emissao }}
- {{ nfse.tipo_tributacao }}
- {{ nfse.data_adesao_simples }}
- {{ nfse.aliquota_simples_isencao|comma }}
- 2.00
- {% for rps in nfse.lista_rps -%}
-
-
-
- {{ rps.tipo_nfse }}
- {{ rps.numero }}
- {{ rps.serie }}
- {{ rps.data_emissao }}
- {{ rps.iss_retido }}
- {{ rps.codigo_servico }}
- {{ rps.descricao}}
- {{ rps.valor_liquido_nfse|comma }}
- {{ rps.valor_deducao|comma }}
- {{ rps.discriminacao_deducao }}
- {{ rps.base_calculo|comma }}
- {{ rps.aliquota_issqn|comma }}
- {{ rps.valor_iss|comma }}
- {{ rps.valor_iss_retido|comma }}
- {{ rps.tomador.cnpj_cpf }}
- {{ rps.tomador.razao_social }}
- {{ rps.tomador.tipo_logradouro }}
- {{ rps.tomador.logradouro }}
- {{ rps.tomador.numero }}
- {{ rps.tomador.complemento }}
- {{ rps.tomador.bairro }}
- {{ rps.tomador.municipio }}
- {{ rps.tomador.uf }}
- {{ rps.tomador.cep }}
- {{ rps.tomador.telefone }}
- {{ rps.tomador.inscricao_municipal }}
- {% if rps.local_prestacao == 'prestador' %}
- {{ rps.prestador.tipo_logradouro }}
- {{ rps.prestador.logradouro }}
- {{ rps.prestador.numero }}
- {{ rps.prestador.complemento }}
- {{ rps.prestador.bairro }}
- {{ rps.prestador.municipio }}
- {{ rps.prestador.uf }}
- {{ rps.prestador.cep }}
- {% endif %}
- {{ rps.tomador.email }}
- {% for imposto in rps.impostos -%}
-
-
- {{ imposto.sigla }}
- {{ imposto.aliquota|comma }}
- {{ imposto.valor|comma }}
-
-
- {% endfor %}
-
-
- {% endfor %}
-
- {{ nfse.lista_rps|length }}
- {{ nfse.lista_rps|sum(attribute='valor_liquido_nfse')|comma }}
- {{ nfse.lista_rps|sum(attribute='valor_iss')|comma }}
- {{ nfse.lista_rps|sum(attribute='valor_deducao')|comma }}
- {{ nfse.lista_rps|sum(attribute='valor_iss_retido')|comma }}
- {{ nfse.quantidade_impostos }}
- {{ nfse.valor_tributos|comma }}
-
-
-
-
diff --git a/pytrustnfe/nfse/imperial/templates/SoapRequest.xml b/pytrustnfe/nfse/imperial/templates/SoapRequest.xml
deleted file mode 100644
index e8b56b4..0000000
--- a/pytrustnfe/nfse/imperial/templates/SoapRequest.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
- {{ soap_body }}
-
-
diff --git a/setup.py b/setup.py
index 82c0f32..d7e1895 100644
--- a/setup.py
+++ b/setup.py
@@ -2,7 +2,7 @@
from setuptools import setup, find_packages
-VERSION = "1.0.35"
+VERSION = "1.0.36"
setup(