From ed944928838f34a97352e13b27a510329fcff3ca Mon Sep 17 00:00:00 2001 From: Leonardo Tada Date: Mon, 28 Dec 2015 17:12:49 -0200 Subject: [PATCH] =?UTF-8?q?serializa=C3=A7=C3=A3o=20consultar=20lote/situa?= =?UTF-8?q?=C3=A7=C3=A3o=20ginfes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pynfe/processamento/autorizador_nfse.py | 28 ++++++++++++++++++++++ pynfe/processamento/serializacao.py | 18 +++++++++++++- .../ginfes/servico_consultar_lote_rps_envio_v03.py | 19 +++++++-------- ...ervico_consultar_situacao_lote_rps_envio_v03.py | 19 +++++++-------- separarpfx.sh | 4 ++-- 5 files changed, 65 insertions(+), 23 deletions(-) diff --git a/pynfe/processamento/autorizador_nfse.py b/pynfe/processamento/autorizador_nfse.py index 5442cd1..2ac365a 100644 --- a/pynfe/processamento/autorizador_nfse.py +++ b/pynfe/processamento/autorizador_nfse.py @@ -243,11 +243,15 @@ class SerializacaoGinfes(InterfaceAutorizador): global _tipos, servico_consultar_nfse_envio_v03 global servico_enviar_lote_rps_envio_v03, cabecalho_v03 global servico_cancelar_nfse_envio_v03 + global servico_consultar_lote_rps_envio_v03 + global servico_consultar_situacao_lote_rps_envio_v03 _tipos = import_module('pynfe.utils.nfse.ginfes._tipos') servico_consultar_nfse_envio_v03 = import_module('pynfe.utils.nfse.ginfes.servico_consultar_nfse_envio_v03') servico_cancelar_nfse_envio_v03 = import_module('pynfe.utils.nfse.ginfes.servico_cancelar_nfse_envio_v03') servico_enviar_lote_rps_envio_v03 = import_module('pynfe.utils.nfse.ginfes.servico_enviar_lote_rps_envio_v03') cabecalho_v03 = import_module('pynfe.utils.nfse.ginfes.cabecalho_v03') + servico_consultar_lote_rps_envio_v03 = import_module('pynfe.utils.nfse.ginfes.servico_consultar_lote_rps_envio_v03') + servico_consultar_situacao_lote_rps_envio_v03 = import_module('pynfe.utils.nfse.ginfes.servico_consultar_situacao_lote_rps_envio_v03') def consultar_rps(self, nfse): """Retorna string de um XML de consulta por Rps gerado a partir do @@ -291,6 +295,30 @@ class SerializacaoGinfes(InterfaceAutorizador): return consulta.toxml(element_name='ns1:ConsultarNfseEnvio') + def consultar_lote(self, emitente, numero): + # Prestador + id_prestador = _tipos.tcIdentificacaoPrestador() + id_prestador.Cnpj = emitente.cnpj + id_prestador.InscricaoMunicipal = emitente.inscricao_municipal + + consulta = servico_consultar_lote_rps_envio_v03.ConsultarLoteRpsEnvio() + consulta.Prestador = id_prestador + consulta.Protocolo = numero + + return consulta.toxml(element_name='ns1:ConsultarLoteRps') + + def consultar_situacao_lote(self, emitente, numero): + # Prestador + id_prestador = _tipos.tcIdentificacaoPrestador() + id_prestador.Cnpj = emitente.cnpj + id_prestador.InscricaoMunicipal = emitente.inscricao_municipal + + consulta = servico_consultar_situacao_lote_rps_envio_v03.ConsultarSituacaoLoteRpsEnvio() + consulta.Prestador = id_prestador + consulta.Protocolo = numero + + return consulta.toxml(element_name='ns1:ConsultarSituacaoLoteRps') + def serializar_lote_assincrono(self, nfse): "Serializa lote de envio, baseado no servico_enviar_lote_rps_envio_v03.xsd" diff --git a/pynfe/processamento/serializacao.py b/pynfe/processamento/serializacao.py index 1a1cda2..15e8909 100644 --- a/pynfe/processamento/serializacao.py +++ b/pynfe/processamento/serializacao.py @@ -612,7 +612,23 @@ class SerializacaoNfse(object): if self.autorizador.lower() == 'ginfes': from pynfe.processamento.autorizador_nfse import SerializacaoGinfes return SerializacaoGinfes().consultar_nfse(emitente, numero, inicio, fim) - + else: + raise Exception('Este método só esta implementado no autorizador ginfes.') + + def consultar_lote(self, emitente, numero): + if self.autorizador.lower() == 'ginfes': + from pynfe.processamento.autorizador_nfse import SerializacaoGinfes + return SerializacaoGinfes().consultar_lote(emitente, numero) + else: + raise Exception('Este método só esta implementado no autorizador ginfes.') + + def consultar_situacao_lote(self, emitente, numero): + if self.autorizador.lower() == 'ginfes': + from pynfe.processamento.autorizador_nfse import SerializacaoGinfes + return SerializacaoGinfes().consultar_situacao_lote(emitente, numero) + else: + raise Exception('Este método só esta implementado no autorizador ginfes.') + def cancelar(self, nfse): if self.autorizador.lower() == 'ginfes': from pynfe.processamento.autorizador_nfse import SerializacaoGinfes diff --git a/pynfe/utils/nfse/ginfes/servico_consultar_lote_rps_envio_v03.py b/pynfe/utils/nfse/ginfes/servico_consultar_lote_rps_envio_v03.py index 772c51c..faabe10 100644 --- a/pynfe/utils/nfse/ginfes/servico_consultar_lote_rps_envio_v03.py +++ b/pynfe/utils/nfse/ginfes/servico_consultar_lote_rps_envio_v03.py @@ -24,8 +24,8 @@ if pyxb.__version__ != _PyXBVersion: raise pyxb.PyXBVersionError(_PyXBVersion) # Import bindings for namespaces imported into schema -import _tipos as _ImportedBinding__tipos -import _dsig as _ImportedBinding__dsig +from pynfe.utils.nfse.ginfes import _tipos as _ImportedBinding__tipos +from pynfe.utils.nfse.ginfes import _dsig as _ImportedBinding__dsig import pyxb.binding.datatypes # NOTE: All namespace declarations are reserved within the binding @@ -88,25 +88,25 @@ class CTD_ANON (pyxb.binding.basis.complexTypeDefinition): _ElementMap = {} _AttributeMap = {} # Base type is pyxb.binding.datatypes.anyType - + # Element {http://www.ginfes.com.br/servico_consultar_lote_rps_envio_v03.xsd}Prestador uses Python identifier Prestador __Prestador = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, 'Prestador'), 'Prestador', '__httpwww_ginfes_com_brservico_consultar_lote_rps_envio_v03_xsd_CTD_ANON_httpwww_ginfes_com_brservico_consultar_lote_rps_envio_v03_xsdPrestador', False, pyxb.utils.utility.Location('/home/leonardo/Downloads/xsd ginfes/servico_consultar_lote_rps_envio_v03.xsd', 14, 4), ) - + Prestador = property(__Prestador.value, __Prestador.set, None, None) - + # Element {http://www.ginfes.com.br/servico_consultar_lote_rps_envio_v03.xsd}Protocolo uses Python identifier Protocolo __Protocolo = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, 'Protocolo'), 'Protocolo', '__httpwww_ginfes_com_brservico_consultar_lote_rps_envio_v03_xsd_CTD_ANON_httpwww_ginfes_com_brservico_consultar_lote_rps_envio_v03_xsdProtocolo', False, pyxb.utils.utility.Location('/home/leonardo/Downloads/xsd ginfes/servico_consultar_lote_rps_envio_v03.xsd', 16, 4), ) - + Protocolo = property(__Protocolo.value, __Protocolo.set, None, None) - + # Element {http://www.w3.org/2000/09/xmldsig#}Signature uses Python identifier Signature __Signature = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(_Namespace_dsig, 'Signature'), 'Signature', '__httpwww_ginfes_com_brservico_consultar_lote_rps_envio_v03_xsd_CTD_ANON_httpwww_w3_org200009xmldsigSignature', False, pyxb.utils.utility.Location('/home/leonardo/Downloads/xsd ginfes/xmldsig-core-schema20020212_v03.xsd', 41, 0), ) - + Signature = property(__Signature.value, __Signature.set, None, None) _ElementMap.update({ @@ -115,7 +115,7 @@ class CTD_ANON (pyxb.binding.basis.complexTypeDefinition): __Signature.name() : __Signature }) _AttributeMap.update({ - + }) @@ -168,4 +168,3 @@ def _BuildAutomaton (): st_2._set_transitionSet(transitions) return fac.Automaton(states, counters, False, containing_state=None) CTD_ANON._Automaton = _BuildAutomaton() - diff --git a/pynfe/utils/nfse/ginfes/servico_consultar_situacao_lote_rps_envio_v03.py b/pynfe/utils/nfse/ginfes/servico_consultar_situacao_lote_rps_envio_v03.py index 9072212..983c2d8 100644 --- a/pynfe/utils/nfse/ginfes/servico_consultar_situacao_lote_rps_envio_v03.py +++ b/pynfe/utils/nfse/ginfes/servico_consultar_situacao_lote_rps_envio_v03.py @@ -24,8 +24,8 @@ if pyxb.__version__ != _PyXBVersion: raise pyxb.PyXBVersionError(_PyXBVersion) # Import bindings for namespaces imported into schema -import _tipos as _ImportedBinding__tipos -import _dsig as _ImportedBinding__dsig +from pynfe.utils.nfse.ginfes import _tipos as _ImportedBinding__tipos +from pynfe.utils.nfse.ginfes import _dsig as _ImportedBinding__dsig import pyxb.binding.datatypes # NOTE: All namespace declarations are reserved within the binding @@ -88,25 +88,25 @@ class CTD_ANON (pyxb.binding.basis.complexTypeDefinition): _ElementMap = {} _AttributeMap = {} # Base type is pyxb.binding.datatypes.anyType - + # Element {http://www.ginfes.com.br/servico_consultar_situacao_lote_rps_envio_v03.xsd}Prestador uses Python identifier Prestador __Prestador = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, 'Prestador'), 'Prestador', '__httpwww_ginfes_com_brservico_consultar_situacao_lote_rps_envio_v03_xsd_CTD_ANON_httpwww_ginfes_com_brservico_consultar_situacao_lote_rps_envio_v03_xsdPrestador', False, pyxb.utils.utility.Location('/home/leonardo/Downloads/xsd ginfes/servico_consultar_situacao_lote_rps_envio_v03.xsd', 10, 4), ) - + Prestador = property(__Prestador.value, __Prestador.set, None, None) - + # Element {http://www.ginfes.com.br/servico_consultar_situacao_lote_rps_envio_v03.xsd}Protocolo uses Python identifier Protocolo __Protocolo = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, 'Protocolo'), 'Protocolo', '__httpwww_ginfes_com_brservico_consultar_situacao_lote_rps_envio_v03_xsd_CTD_ANON_httpwww_ginfes_com_brservico_consultar_situacao_lote_rps_envio_v03_xsdProtocolo', False, pyxb.utils.utility.Location('/home/leonardo/Downloads/xsd ginfes/servico_consultar_situacao_lote_rps_envio_v03.xsd', 11, 4), ) - + Protocolo = property(__Protocolo.value, __Protocolo.set, None, None) - + # Element {http://www.w3.org/2000/09/xmldsig#}Signature uses Python identifier Signature __Signature = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(_Namespace_dsig, 'Signature'), 'Signature', '__httpwww_ginfes_com_brservico_consultar_situacao_lote_rps_envio_v03_xsd_CTD_ANON_httpwww_w3_org200009xmldsigSignature', False, pyxb.utils.utility.Location('/home/leonardo/Downloads/xsd ginfes/xmldsig-core-schema20020212_v03.xsd', 41, 0), ) - + Signature = property(__Signature.value, __Signature.set, None, None) _ElementMap.update({ @@ -115,7 +115,7 @@ class CTD_ANON (pyxb.binding.basis.complexTypeDefinition): __Signature.name() : __Signature }) _AttributeMap.update({ - + }) @@ -168,4 +168,3 @@ def _BuildAutomaton (): st_2._set_transitionSet(transitions) return fac.Automaton(states, counters, False, containing_state=None) CTD_ANON._Automaton = _BuildAutomaton() - diff --git a/separarpfx.sh b/separarpfx.sh index d543c62..cb6e849 100644 --- a/separarpfx.sh +++ b/separarpfx.sh @@ -9,5 +9,5 @@ # # The directory will now have a file cert.pem and a key.pem. -openssl pkcs12 -in JC.pfx -nocerts -nodes -out key.pem -passin pass:12345678 -openssl pkcs12 -in JC.pfx -clcerts -nokeys -out cert.pem -passin pass:12345678 \ No newline at end of file +openssl pkcs12 -in C.pfx -nocerts -nodes -out key.pem -passin pass:1234 +openssl pkcs12 -in C.pfx -clcerts -nokeys -out cert.pem -passin pass:1234