Browse Source

consultar nfse, importação dinamica na classe

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

39
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 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)

3
pynfe/utils/nfse/ginfes/_tipos.py

@ -24,7 +24,7 @@ if pyxb.__version__ != _PyXBVersion:
raise pyxb.PyXBVersionError(_PyXBVersion)
# Import bindings for namespaces imported into schema
import _dsig as _ImportedBinding__dsig
from pynfe.utils.nfse.ginfes import _dsig as _ImportedBinding__dsig
import pyxb.binding.datatypes
# NOTE: All namespace declarations are reserved within the binding
@ -4423,4 +4423,3 @@ def _BuildAutomaton_30 ():
st_4._set_transitionSet(transitions)
return fac.Automaton(states, counters, False, containing_state=None)
tcLoteRps._Automaton = _BuildAutomaton_30()

5
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
@ -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