From e0dcda3dd3d0bc5de5f73db56b9e34f4d00d0e1e Mon Sep 17 00:00:00 2001 From: Sergio Oliveira Date: Fri, 21 Sep 2012 23:42:00 -0300 Subject: [PATCH] Funcao helper para pegar municipio --- pynfe/processamento/serializacao.py | 19 ++++++------------- pynfe/utils/__init__.py | 12 +++++++++++- 2 files changed, 17 insertions(+), 14 deletions(-) diff --git a/pynfe/processamento/serializacao.py b/pynfe/processamento/serializacao.py index f29c5b9..bcb2f6f 100644 --- a/pynfe/processamento/serializacao.py +++ b/pynfe/processamento/serializacao.py @@ -6,7 +6,7 @@ except: from pynfe.entidades import Emitente, Cliente, Produto, Transportadora, NotaFiscal from pynfe.excecoes import NenhumObjetoEncontrado, MuitosObjetosEncontrados -from pynfe.utils import etree, so_numeros, obter_municipio_por_codigo, obter_pais_por_codigo, obter_codigo_por_municipio +from pynfe.utils import etree, so_numeros, obter_municipio_por_codigo, obter_pais_por_codigo, obter_municipio_e_codigo from pynfe.utils.flags import CODIGOS_ESTADOS, VERSAO_PADRAO class Serializacao(object): @@ -352,18 +352,9 @@ class SerializacaoPipes(Serializacao): def _serializar_emitente(self, emitente): - try: - cod_municipio = int(emitente.endereco_municipio) - except ValueError: - cod_municipio = obter_codigo_por_municipio( - emitente.endereco_municipio, - emitente.endereco_uf - ) - - municipio = obter_municipio_por_codigo( - cod_municipio, - emitente.endereco_uf, - normalizado=True, + cod_municipio, municipio = obter_municipio_e_codigo( + emitente.endereco_municipio, + emitente.endereco_uf ) serial_emitente_list = [ @@ -394,3 +385,5 @@ class SerializacaoPipes(Serializacao): return '|'.join(serial_emitente_list) + def _serializar_cliente(self, cliente): + pass diff --git a/pynfe/utils/__init__.py b/pynfe/utils/__init__.py index ee9b3e9..13fff26 100644 --- a/pynfe/utils/__init__.py +++ b/pynfe/utils/__init__.py @@ -110,6 +110,16 @@ def obter_municipio_por_codigo(codigo, uf, normalizado=False): return municipio @memoize +def obter_municipio_e_codigo(municipio_ou_codigo, uf): + try: + cod_municipio = int(municipio_ou_codigo) + except ValueError: + cod_municipio = obter_codigo_por_municipio(municipio_ou_codigo, uf) + + municipio = obter_municipio_por_codigo(cod_municipio, uf, normalizado=True) + + return cod_municipio, municipio + +@memoize def extrair_tag(root): return root.tag.split('}')[-1] -