Browse Source

consultar nfse, importação dinamica na classe

pull/7/head
Leonardo Tada 10 years ago
parent
commit
5de076c480
  1. 41
      pynfe/processamento/autorizador_nfse.py
  2. 5
      pynfe/processamento/serializacao.py
  3. 2
      pynfe/utils/nfse/betha/nfse_v202.py
  4. 577
      pynfe/utils/nfse/ginfes/_tipos.py
  5. 41
      pynfe/utils/nfse/ginfes/servico_consultar_nfse_envio_v03.py

41
pynfe/processamento/autorizador_nfse.py

@ -1,9 +1,5 @@
try:
from pynfe.utils.nfse.betha import nfse_v202 as nfse_schema
from pynfe.utils.nfse.ginfes import servico_enviar_lote_rps_envio_v03, servico_consultar_nfse_rps_envio_v03, _tipos
from pyxb import BIND
except:
pass # modulo necessario apenas para NFS-e.
from pyxb import BIND
from importlib import import_module
class InterfaceAutorizador():
@ -11,9 +7,6 @@ class InterfaceAutorizador():
def consultar(self):
pass
def consultar_faixa(self):
pass
def cancelar(self):
pass
@ -23,8 +16,9 @@ class InterfaceAutorizador():
class SerializacaoBetha(InterfaceAutorizador):
def __init__(self):
if 'nfse_schema' not in globals():
raise ImportError('No module named nfse_v202 or PyXB')
# importa
global nfse_schema
nfse_schema = import_module('pynfe.utils.nfse.betha.nfse_v202')
def gerar(self, nfse):
"""Retorna string de um XML gerado a partir do
@ -248,8 +242,10 @@ class SerializacaoBetha(InterfaceAutorizador):
class SerializacaoGinfes(InterfaceAutorizador):
def __init__(self):
if 'nfse_ginfes' not in globals():
raise ImportError('No module named nfse_ginfes or PyXB')
# importa
global _tipos, servico_consultar_nfse_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')
def consultar(self, nfse):
"""Retorna string de um XML de consulta por Rps gerado a partir do
@ -273,3 +269,22 @@ class SerializacaoGinfes(InterfaceAutorizador):
consulta = consulta.toxml(element_name='ConsultarNfseRpsEnvio')
return consulta
def consultar_nfse(self, emitente, numero=None, inicio=None, fim=None):
# Prestador
id_prestador = _tipos.tcIdentificacaoPrestador()
id_prestador.Cnpj = emitente.cnpj
id_prestador.InscricaoMunicipal = emitente.inscricao_municipal
consulta = servico_consultar_nfse_envio_v03.ConsultarNfseEnvio()
consulta.Prestador = id_prestador
# Consulta por Numero
if numero is not None:
consulta.NumeroNfse = numero
else:
# consulta por Data
consulta.PeriodoEmissao = BIND()
consulta.PeriodoEmissao.DataInicial = inicio
consulta.PeriodoEmissao.DataFinal = fim
return consulta.toxml(element_name='ConsultarNfseEnvio')

5
pynfe/processamento/serializacao.py

@ -601,6 +601,11 @@ class SerializacaoNfse(object):
else:
raise Exception('Este método só esta implementado no autorizador Betha.')
def consultar_nfse(self, emitente, numero=None, inicio=None, fim=None):
if self.autorizador.lower() == 'ginfes':
from pynfe.processamento.autorizador_nfse import SerializacaoGinfes
return SerializacaoGinfes().consultar_nfse(emitente, numero, inicio, fim)
class SerializacaoPipes(Serializacao):
"""Serialização utilizada pela SEFAZ-SP para a importação de notas."""

2
pynfe/utils/nfse/betha/nfse_v202.py

@ -25,7 +25,7 @@ if pyxb.__version__ != _PyXBVersion:
# Import bindings for namespaces imported into schema
import pyxb.binding.datatypes
import pynfe.utils._dsig as _ImportedBinding__dsig
from pynfe.utils.nfse.betha import _dsig as _ImportedBinding__dsig
# NOTE: All namespace declarations are reserved within the binding
Namespace = pyxb.namespace.NamespaceForURI('http://www.betha.com.br/e-nota-contribuinte-ws', create_if_missing=True)

577
pynfe/utils/nfse/ginfes/_tipos.py
File diff suppressed because it is too large
View File

41
pynfe/utils/nfse/ginfes/servico_consultar_nfse_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,46 +88,46 @@ class CTD_ANON (pyxb.binding.basis.complexTypeDefinition):
_ElementMap = {}
_AttributeMap = {}
# Base type is pyxb.binding.datatypes.anyType
# Element {http://www.ginfes.com.br/servico_consultar_nfse_envio_v03.xsd}Prestador uses Python identifier Prestador
__Prestador = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, 'Prestador'), 'Prestador', '__httpwww_ginfes_com_brservico_consultar_nfse_envio_v03_xsd_CTD_ANON_httpwww_ginfes_com_brservico_consultar_nfse_envio_v03_xsdPrestador', False, pyxb.utils.utility.Location('/home/leonardo/Downloads/xsd ginfes/servico_consultar_nfse_envio_v03.xsd', 9, 4), )
Prestador = property(__Prestador.value, __Prestador.set, None, None)
# Element {http://www.ginfes.com.br/servico_consultar_nfse_envio_v03.xsd}NumeroNfse uses Python identifier NumeroNfse
__NumeroNfse = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, 'NumeroNfse'), 'NumeroNfse', '__httpwww_ginfes_com_brservico_consultar_nfse_envio_v03_xsd_CTD_ANON_httpwww_ginfes_com_brservico_consultar_nfse_envio_v03_xsdNumeroNfse', False, pyxb.utils.utility.Location('/home/leonardo/Downloads/xsd ginfes/servico_consultar_nfse_envio_v03.xsd', 10, 4), )
NumeroNfse = property(__NumeroNfse.value, __NumeroNfse.set, None, None)
# Element {http://www.ginfes.com.br/servico_consultar_nfse_envio_v03.xsd}PeriodoEmissao uses Python identifier PeriodoEmissao
__PeriodoEmissao = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, 'PeriodoEmissao'), 'PeriodoEmissao', '__httpwww_ginfes_com_brservico_consultar_nfse_envio_v03_xsd_CTD_ANON_httpwww_ginfes_com_brservico_consultar_nfse_envio_v03_xsdPeriodoEmissao', False, pyxb.utils.utility.Location('/home/leonardo/Downloads/xsd ginfes/servico_consultar_nfse_envio_v03.xsd', 11, 4), )
PeriodoEmissao = property(__PeriodoEmissao.value, __PeriodoEmissao.set, None, None)
# Element {http://www.ginfes.com.br/servico_consultar_nfse_envio_v03.xsd}Tomador uses Python identifier Tomador
__Tomador = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, 'Tomador'), 'Tomador', '__httpwww_ginfes_com_brservico_consultar_nfse_envio_v03_xsd_CTD_ANON_httpwww_ginfes_com_brservico_consultar_nfse_envio_v03_xsdTomador', False, pyxb.utils.utility.Location('/home/leonardo/Downloads/xsd ginfes/servico_consultar_nfse_envio_v03.xsd', 19, 4), )
Tomador = property(__Tomador.value, __Tomador.set, None, None)
# Element {http://www.ginfes.com.br/servico_consultar_nfse_envio_v03.xsd}IntermediarioServico uses Python identifier IntermediarioServico
__IntermediarioServico = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, 'IntermediarioServico'), 'IntermediarioServico', '__httpwww_ginfes_com_brservico_consultar_nfse_envio_v03_xsd_CTD_ANON_httpwww_ginfes_com_brservico_consultar_nfse_envio_v03_xsdIntermediarioServico', False, pyxb.utils.utility.Location('/home/leonardo/Downloads/xsd ginfes/servico_consultar_nfse_envio_v03.xsd', 20, 4), )
IntermediarioServico = property(__IntermediarioServico.value, __IntermediarioServico.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_nfse_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({
@ -139,7 +139,7 @@ class CTD_ANON (pyxb.binding.basis.complexTypeDefinition):
__Signature.name() : __Signature
})
_AttributeMap.update({
})
@ -155,18 +155,18 @@ class CTD_ANON_ (pyxb.binding.basis.complexTypeDefinition):
_ElementMap = {}
_AttributeMap = {}
# Base type is pyxb.binding.datatypes.anyType
# Element {http://www.ginfes.com.br/servico_consultar_nfse_envio_v03.xsd}DataInicial uses Python identifier DataInicial
__DataInicial = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, 'DataInicial'), 'DataInicial', '__httpwww_ginfes_com_brservico_consultar_nfse_envio_v03_xsd_CTD_ANON__httpwww_ginfes_com_brservico_consultar_nfse_envio_v03_xsdDataInicial', False, pyxb.utils.utility.Location('/home/leonardo/Downloads/xsd ginfes/servico_consultar_nfse_envio_v03.xsd', 14, 7), )
DataInicial = property(__DataInicial.value, __DataInicial.set, None, None)
# Element {http://www.ginfes.com.br/servico_consultar_nfse_envio_v03.xsd}DataFinal uses Python identifier DataFinal
__DataFinal = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, 'DataFinal'), 'DataFinal', '__httpwww_ginfes_com_brservico_consultar_nfse_envio_v03_xsd_CTD_ANON__httpwww_ginfes_com_brservico_consultar_nfse_envio_v03_xsdDataFinal', False, pyxb.utils.utility.Location('/home/leonardo/Downloads/xsd ginfes/servico_consultar_nfse_envio_v03.xsd', 15, 7), )
DataFinal = property(__DataFinal.value, __DataFinal.set, None, None)
_ElementMap.update({
@ -174,7 +174,7 @@ class CTD_ANON_ (pyxb.binding.basis.complexTypeDefinition):
__DataFinal.name() : __DataFinal
})
_AttributeMap.update({
})
@ -329,4 +329,3 @@ def _BuildAutomaton_ ():
st_1._set_transitionSet(transitions)
return fac.Automaton(states, counters, False, containing_state=None)
CTD_ANON_._Automaton = _BuildAutomaton_()
Loading…
Cancel
Save