From ab1fb6b2504da813205f34354dad8963043a6ac6 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Fri, 10 Oct 2014 01:25:05 -0300 Subject: [PATCH 1/5] =?UTF-8?q?Adicionado=20fun=C3=A7=C3=A3o=20para=20remo?= =?UTF-8?q?ver=20pontua=C3=A7=C3=B5es=20de=20strings?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- l10n_br_base/tools/__init__.py | 1 + 1 file changed, 1 insertion(+) diff --git a/l10n_br_base/tools/__init__.py b/l10n_br_base/tools/__init__.py index 9742b60c8..cc39249b8 100644 --- a/l10n_br_base/tools/__init__.py +++ b/l10n_br_base/tools/__init__.py @@ -18,3 +18,4 @@ ############################################################################### import fiscal +import misc From 3f44c2d62d5b4f6f3ff7e5f08d508a19904efd3a Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Fri, 10 Oct 2014 01:29:43 -0300 Subject: [PATCH 2/5] =?UTF-8?q?Alterada=20a=20rotina=20de=20gera=C3=A7?= =?UTF-8?q?=C3=A3o=20de=20NFe=20em=20XML=20para=20utilizar=20a=20fun=C3=A7?= =?UTF-8?q?=C3=A3o=20punctuation=5Frm?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- l10n_br_account_product/sped/nfe/document.py | 45 ++++++++++---------- 1 file changed, 22 insertions(+), 23 deletions(-) diff --git a/l10n_br_account_product/sped/nfe/document.py b/l10n_br_account_product/sped/nfe/document.py index 5977f38a2..3f13f9374 100644 --- a/l10n_br_account_product/sped/nfe/document.py +++ b/l10n_br_account_product/sped/nfe/document.py @@ -17,14 +17,13 @@ #along with this program. If not, see . # ############################################################################### -import re -import string from datetime import datetime from openerp import pooler from openerp.osv import orm from openerp.tools.translate import _ from openerp.addons.l10n_br_account.sped.document import FiscalDocument +from openerp.addons.l10n_br_base.tools.misc import punctuation_rm class NFe200(FiscalDocument): @@ -81,7 +80,7 @@ def _serializer(self, cr, uid, ids, nfe_environment, context=None): if inv.partner_shipping_id: if inv.partner_id.id != inv.partner_shipping_id.id: if nfe.infNFe.ide.tpNF.valor == '0': - nfe.infNFe.retirada.CNPJ.valor = re.sub('[%s]' % re.escape(string.punctuation), '', inv.partner_shipping_id.cnpj_cpf or '') + nfe.infNFe.retirada.CNPJ.valor = punctuation_rm(inv.partner_shipping_id.cnpj_cpf) nfe.infNFe.retirada.xLgr.valor = inv.partner_shipping_id.street or '' nfe.infNFe.retirada.nro.valor = inv.partner_shipping_id.number or '' nfe.infNFe.retirada.xCpl.valor = inv.partner_shipping_id.street2 or '' @@ -90,7 +89,7 @@ def _serializer(self, cr, uid, ids, nfe_environment, context=None): nfe.infNFe.retirada.xMun.valor = inv.partner_shipping_id.l10n_br_city_id.name or '' nfe.infNFe.retirada.UF.valor = inv.address_invoice_id.state_id.code or '' else: - nfe.infNFe.entrega.CNPJ.valor = re.sub('[%s]' % re.escape(string.punctuation), '', inv.partner_shipping_id.cnpj_cpf or '') + nfe.infNFe.entrega.CNPJ.valor = punctuation_rm(inv.partner_shipping_id.cnpj_cpf) nfe.infNFe.entrega.xLgr.valor = inv.partner_shipping_id.street or '' nfe.infNFe.entrega.nro.valor = inv.partner_shipping_id.number or '' nfe.infNFe.entrega.xCpl.valor = inv.partner_shipping_id.street2 or '' @@ -109,21 +108,21 @@ def _serializer(self, cr, uid, ids, nfe_environment, context=None): if inv_related.document_type == 'nf': nfref.refNF.cUF.valor = inv_related.state_id and inv_related.state_id.ibge_code or '', nfref.refNF.AAMM.valor = datetime.strptime(inv_related.date, '%Y-%m-%d').strftime('%y%m') or '' - nfref.refNF.CNPJ.valor = re.sub('[%s]' % re.escape(string.punctuation), '', inv_related.cnpj_cpf or '') + nfref.refNF.CNPJ.valor = punctuation_rm(inv_related.cnpj_cpf) nfref.refNF.mod.valor = inv_related.fiscal_document_id and inv_related.fiscal_document_id.code or '' nfref.refNF.serie.valor = inv_related.serie or '' nfref.refNF.nNF.valor = inv_related.internal_number or '' elif inv_related.document_type == 'nfrural': nfref.refNFP.cUF.valor = inv_related.state_id and inv_related.state_id.ibge_code or '', nfref.refNFP.AAMM.valor = datetime.strptime(inv_related.date, '%Y-%m-%d').strftime('%y%m') or '' - nfref.refNFP.IE.valor = re.sub('[%s]' % re.escape(string.punctuation), '', inv_related.inscr_est or '') + nfref.refNFP.IE.valor = punctuation_rm(inv_related.inscr_est) nfref.refNFP.mod.valor = inv_related.fiscal_document_id and inv_related.fiscal_document_id.code or '' nfref.refNFP.serie.valor = inv_related.serie or '' nfref.refNFP.nNF.valor = inv_related.internal_number or '' if inv_related.cpfcnpj_type == 'cnpj': - nfref.refNFP.CNPJ.valor = re.sub('[%s]' % re.escape(string.punctuation), '', inv_related.cnpj_cpf or '') + nfref.refNFP.CNPJ.valor = punctuation_rm(inv_related.cnpj_cpf) else: - nfref.refNFP.CPF.valor = re.sub('[%s]' % re.escape(string.punctuation), '', inv_related.cnpj_cpf or '') + nfref.refNFP.CPF.valor = punctuation_rm(inv_related.cnpj_cpf) elif inv_related.document_type == 'nfe': nfref.refNFe.valor = inv_related.access_key or '' elif inv_related.document_type == 'cte': @@ -138,7 +137,7 @@ def _serializer(self, cr, uid, ids, nfe_environment, context=None): # # Emitente # - nfe.infNFe.emit.CNPJ.valor = re.sub('[%s]' % re.escape(string.punctuation), '', inv.company_id.partner_id.cnpj_cpf or '') + nfe.infNFe.emit.CNPJ.valor = punctuation_rm(inv.company_id.partner_id.cnpj_cpf) nfe.infNFe.emit.xNome.valor = inv.company_id.partner_id.legal_name nfe.infNFe.emit.xFant.valor = inv.company_id.partner_id.name nfe.infNFe.emit.enderEmit.xLgr.valor = company.street or '' @@ -148,16 +147,16 @@ def _serializer(self, cr, uid, ids, nfe_environment, context=None): nfe.infNFe.emit.enderEmit.cMun.valor = '%s%s' % (company.state_id.ibge_code, company.l10n_br_city_id.ibge_code) nfe.infNFe.emit.enderEmit.xMun.valor = company.l10n_br_city_id.name or '' nfe.infNFe.emit.enderEmit.UF.valor = company.state_id.code or '' - nfe.infNFe.emit.enderEmit.CEP.valor = re.sub('[%s]' % re.escape(string.punctuation), '', str(company.zip or '').replace(' ','')) + nfe.infNFe.emit.enderEmit.CEP.valor = punctuation_rm(company.zip) nfe.infNFe.emit.enderEmit.cPais.valor = company.country_id.bc_code[1:] nfe.infNFe.emit.enderEmit.xPais.valor = company.country_id.name - nfe.infNFe.emit.enderEmit.fone.valor = re.sub('[%s]' % re.escape(string.punctuation), '', str(company.phone or '').replace(' ','')) - nfe.infNFe.emit.IE.valor = re.sub('[%s]' % re.escape(string.punctuation), '', inv.company_id.partner_id.inscr_est or '') + nfe.infNFe.emit.enderEmit.fone.valor = punctuation_rm(company.phone) + nfe.infNFe.emit.IE.valor = punctuation_rm(inv.company_id.partner_id.inscr_est) nfe.infNFe.emit.IEST.valor = '' - nfe.infNFe.emit.IM.valor = re.sub('[%s]' % re.escape(string.punctuation), '', inv.company_id.partner_id.inscr_mun or '') + nfe.infNFe.emit.IM.valor = punctuation_rm(inv.company_id.partner_id.inscr_mun) nfe.infNFe.emit.CRT.valor = inv.company_id.fiscal_type or '' if inv.company_id.partner_id.inscr_mun: - nfe.infNFe.emit.CNAE.valor = re.sub('[%s]' % re.escape(string.punctuation), '', inv.company_id.cnae_main_id.code or '') + nfe.infNFe.emit.CNAE.valor = punctuation_rm(inv.company_id.cnae_main_id.code) # # Destinatário @@ -176,7 +175,7 @@ def _serializer(self, cr, uid, ids, nfe_environment, context=None): else: address_invoice_state_code = inv.partner_id.state_id.code address_invoice_city = inv.partner_id.l10n_br_city_id.name or '' - partner_cep = re.sub('[%s]' % re.escape(string.punctuation), '', str(inv.partner_id.zip or '').replace(' ','')) + partner_cep = punctuation_rm(inv.partner_id.zip) # Se o ambiente for de teste deve ser # escrito na razão do destinatário @@ -186,10 +185,10 @@ def _serializer(self, cr, uid, ids, nfe_environment, context=None): nfe.infNFe.dest.xNome.valor = inv.partner_id.legal_name or '' if inv.partner_id.is_company: - nfe.infNFe.dest.CNPJ.valor = re.sub('[%s]' % re.escape(string.punctuation), '', inv.partner_id.cnpj_cpf or '') - nfe.infNFe.dest.IE.valor = re.sub('[%s]' % re.escape(string.punctuation), '', inv.partner_id.inscr_est or '') + nfe.infNFe.dest.CNPJ.valor = punctuation_rm(inv.partner_id.cnpj_cpf) + nfe.infNFe.dest.IE.valor = punctuation_rm(inv.partner_id.inscr_est) else: - nfe.infNFe.dest.CPF.valor = re.sub('[%s]' % re.escape(string.punctuation), '', inv.partner_id.cnpj_cpf or '') + nfe.infNFe.dest.CPF.valor = punctuation_rm(inv.partner_id.cnpj_cpf) nfe.infNFe.dest.enderDest.xLgr.valor = inv.partner_id.street or '' nfe.infNFe.dest.enderDest.nro.valor = inv.partner_id.number or '' @@ -201,7 +200,7 @@ def _serializer(self, cr, uid, ids, nfe_environment, context=None): nfe.infNFe.dest.enderDest.CEP.valor = partner_cep nfe.infNFe.dest.enderDest.cPais.valor = partner_bc_code nfe.infNFe.dest.enderDest.xPais.valor = inv.partner_id.country_id.name or '' - nfe.infNFe.dest.enderDest.fone.valor = re.sub('[%s]' % re.escape(string.punctuation), '', str(inv.partner_id.phone or '').replace(' ','')) + nfe.infNFe.dest.enderDest.fone.valor = punctuation_rm(inv.partner_id.phone) nfe.infNFe.dest.email.valor = inv.partner_id.email or '' # @@ -216,7 +215,7 @@ def _serializer(self, cr, uid, ids, nfe_environment, context=None): det.prod.cProd.valor = inv_line.product_id.code or '' det.prod.cEAN.valor = inv_line.product_id.ean13 or '' det.prod.xProd.valor = inv_line.product_id.name or '' - det.prod.NCM.valor = re.sub('[%s]' % re.escape(string.punctuation), '', inv_line.fiscal_classification_id.name or '') + det.prod.NCM.valor = punctuation_rm(inv_line.fiscal_classification_id.name) det.prod.EXTIPI.valor = '' det.prod.CFOP.valor = inv_line.cfop_id.code det.prod.uCom.valor = inv_line.uos_id.name or '' @@ -272,7 +271,7 @@ def _serializer(self, cr, uid, ids, nfe_environment, context=None): det.imposto.ISSQN.vAliq.valor = str("%.2f" % inv_line.issqn_percent) det.imposto.ISSQN.vISSQN.valor = str("%.2f" % inv_line.issqn_value) det.imposto.ISSQN.cMunFG.valor = ('%s%s') % (inv.partner_id.state_id.ibge_code, inv.partner_id.l10n_br_city_id.ibge_code) - det.imposto.ISSQN.cListServ.valor = re.sub('[%s]' % re.escape(string.punctuation), '', inv_line.service_type_id.code or '') + det.imposto.ISSQN.cListServ.valor = punctuation_rm(inv_line.service_type_id.code) det.imposto.ISSQN.cSitTrib.valor = inv_line.issqn_type # PIS @@ -325,9 +324,9 @@ def _serializer(self, cr, uid, ids, nfe_environment, context=None): nfe.infNFe.transp.modFrete.valor = inv.incoterm and inv.incoterm.freight_responsibility or '9' if inv.carrier_id.partner_id.is_company: - nfe.infNFe.transp.transporta.CNPJ.valor = re.sub('[%s]' % re.escape(string.punctuation), '', inv.carrier_id.partner_id.cnpj_cpf or '') + nfe.infNFe.transp.transporta.CNPJ.valor = punctuation_rm(inv.carrier_id.partner_id.cnpj_cpf) else: - nfe.infNFe.transp.transporta.CPF.valor = re.sub('[%s]' % re.escape(string.punctuation), '', inv.carrier_id.partner_id.cnpj_cpf or '') + nfe.infNFe.transp.transporta.CPF.valor = punctuation_rm(inv.carrier_id.partner_id.cnpj_cpf) nfe.infNFe.transp.transporta.xNome.valor = inv.carrier_id.partner_id.legal_name or '' nfe.infNFe.transp.transporta.IE.valor = inv.carrier_id.partner_id.inscr_est or '' nfe.infNFe.transp.transporta.xEnder.valor = inv.carrier_id.partner_id.street or '' From d8b39ca890ceb86bc9b53e78a8fe7a8de4b3854e Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Fri, 10 Oct 2014 01:31:36 -0300 Subject: [PATCH 3/5] =?UTF-8?q?Alterada=20a=20rotina=20de=20gera=C3=A7?= =?UTF-8?q?=C3=A3o=20de=20NFe=20em=20TXT=20para=20utilizar=20a=20fun=C3=A7?= =?UTF-8?q?=C3=A3o=20punctuation=5Frm?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sped/nfe/serializer/txt.py | 64 +++++++++---------- 1 file changed, 32 insertions(+), 32 deletions(-) diff --git a/l10n_br_account_product/sped/nfe/serializer/txt.py b/l10n_br_account_product/sped/nfe/serializer/txt.py index 3bb8fdedb..a2861a6a0 100644 --- a/l10n_br_account_product/sped/nfe/serializer/txt.py +++ b/l10n_br_account_product/sped/nfe/serializer/txt.py @@ -19,8 +19,6 @@ import time from datetime import datetime -import re -import string from unicodedata import normalize from openerp.osv import osv @@ -28,6 +26,8 @@ from openerp import netsvc import pooler +from openerp.addons.l10n_br_base.tools.misc import punctuation_rm + def nfe_export(cr, uid, ids, nfe_environment='1', nfe_version='200', context=False): @@ -88,10 +88,10 @@ def nfe_export(cr, uid, ids, nfe_environment='1', StrRegB14 = { 'cUF': '%s' % inv_related.state_id and inv_related.state_id.ibge_code or '', 'AAMM': datetime.strptime(inv_related.date, '%Y-%m-%d').strftime('%y%m') or '', - 'CNPJ': (re.sub('[%s]' % re.escape(string.punctuation), '', inv_related.cnpj_cpf or '')), + 'CNPJ': punctuation_rm(inv_related.cnpj_cpf), 'Mod': inv_related.fiscal_document_id and inv_related.fiscal_document_id.code or '', 'serie': inv_related.serie or '', - 'nNF': (re.sub('[%s]' % re.escape(string.punctuation), '', inv_related.internal_number or '')), + 'nNF': punctuation_rm(inv_related.internal_number), } StrB14 = 'B14|%s|%s|%s|%s|%s|%s|\n' % (StrRegB14['cUF'], @@ -104,10 +104,10 @@ def nfe_export(cr, uid, ids, nfe_environment='1', StrRegB20a = { 'cUF': '%s' % inv_related.state_id and inv_related.state_id.ibge_code or '', 'AAMM': datetime.strptime(inv_related.date, '%Y-%m-%d').strftime('%y%m') or '', - 'IE': (re.sub('[%s]' % re.escape(string.punctuation), '', inv_related.inscr_est or '')), + 'IE': punctuation_rm(inv_related.inscr_est), 'mod': inv_related.fiscal_document_id and inv_related.fiscal_document_id.code or '', 'serie': inv_related.serie or '', - 'nNF': (re.sub('[%s]' % re.escape(string.punctuation), '', inv_related.internal_number or '')), + 'nNF': punctuation_rm(inv_related.internal_number), } StrB20a = 'B20a|%s|%s|%s|%s|%s|%s|\n' % (StrRegB20a['cUF'], StrRegB20a['AAMM'], StrRegB20a['IE'], StrRegB20a['mod'], @@ -117,13 +117,13 @@ def nfe_export(cr, uid, ids, nfe_environment='1', if inv_related.cpfcnpj_type == 'cnpj': StrRegB20d = { - 'CNPJ': (re.sub('[%s]' % re.escape(string.punctuation), '', inv_related.cnpj_cpf or '')) + 'CNPJ': punctuation_rm(inv_related.cnpj_cpf) } StrB20d = 'B20d|%s|\n' % StrRegB20d['CNPJ'] StrFile += StrB20d else: StrRegB20e = { - 'CPF': (re.sub('[%s]' % re.escape(string.punctuation), '', inv_related.cnpj_cpf or '')) + 'CPF': punctuation_rm(inv_related.cnpj_cpf) } StrB20e = 'B20e|%s|\n' % StrRegB20e['CPF'] StrFile += StrB20e @@ -151,10 +151,10 @@ def nfe_export(cr, uid, ids, nfe_environment='1', StrRegC = { 'XNome': normalize('NFKD',unicode(inv.company_id.partner_id.legal_name or '')).encode('ASCII','ignore'), 'XFant': normalize('NFKD',unicode(inv.company_id.partner_id.name or '')).encode('ASCII','ignore'), - 'IE': re.sub('[%s]' % re.escape(string.punctuation), '', inv.company_id.partner_id.inscr_est or ''), + 'IE': punctuation_rm(inv.company_id.partner_id.inscr_est), 'IEST': '', - 'IM': re.sub('[%s]' % re.escape(string.punctuation), '', inv.company_id.partner_id.inscr_mun or ''), - 'CNAE': re.sub('[%s]' % re.escape(string.punctuation), '', inv.company_id.cnae_main_id.code or ''), + 'IM': punctuation_rm(inv.company_id.partner_id.inscr_mun), + 'CNAE': punctuation_rm(inv.company_id.cnae_main_id.code), 'CRT': inv.company_id.fiscal_type or '', } @@ -168,9 +168,9 @@ def nfe_export(cr, uid, ids, nfe_environment='1', StrFile += StrC if inv.company_id.partner_id.is_company: - StrC02 = 'C02|%s|\n' % (re.sub('[%s]' % re.escape(string.punctuation), '', inv.company_id.partner_id.cnpj_cpf or '')) + StrC02 = 'C02|%s|\n' % (punctuation_rm(inv.company_id.partner_id.cnpj_cpf)) else: - StrC02 = 'C02a|%s|\n' % (re.sub('[%s]' % re.escape(string.punctuation), '', inv.company_id.partner_id.cnpj_cpf or '')) + StrC02 = 'C02a|%s|\n' % (punctuation_rm(inv.company_id.partner_id.cnpj_cpf)) StrFile += StrC02 @@ -186,10 +186,10 @@ def nfe_export(cr, uid, ids, nfe_environment='1', 'CMun': '%s%s' % (company_addr_default.state_id.ibge_code, company_addr_default.l10n_br_city_id.ibge_code), 'XMun': normalize('NFKD',unicode(company_addr_default.l10n_br_city_id.name or '')).encode('ASCII','ignore'), 'UF': company_addr_default.state_id.code or '', - 'CEP': re.sub('[%s]' % re.escape(string.punctuation), '', str(company_addr_default.zip or '').replace(' ','')), + 'CEP': punctuation_rm(company_addr_default.zip), 'cPais': address_company_bc_code or '', 'xPais': normalize('NFKD',unicode(company_addr_default.country_id.name or '')).encode('ASCII','ignore'), - 'fone': re.sub('[%s]' % re.escape(string.punctuation), '', str(company_addr_default.phone or '').replace(' ','')), + 'fone': punctuation_rm(company_addr_default.phone), } StrC05 = 'C05|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|\n' % (StrRegC05['XLgr'], StrRegC05['Nro'], StrRegC05['Cpl'], StrRegC05['Bairro'], @@ -218,7 +218,7 @@ def nfe_export(cr, uid, ids, nfe_environment='1', address_invoice_state_code = inv.partner_id.state_id.code address_invoice_city = normalize('NFKD',unicode(inv.partner_id.l10n_br_city_id.name or '')).encode('ASCII','ignore') address_invoice_city_code = ('%s%s') % (inv.partner_id.state_id.ibge_code, inv.partner_id.l10n_br_city_id.ibge_code) - partner_cep = re.sub('[%s]' % re.escape(string.punctuation), '', str(inv.partner_id.zip or '').replace(' ','')) + partner_cep = punctuation_rm(inv.partner_id.zip) # Se o ambiente for de teste deve ser escrito na razão do destinatário if nfe_environment == '2': @@ -228,7 +228,7 @@ def nfe_export(cr, uid, ids, nfe_environment='1', StrRegE = { 'xNome': xNome, - 'IE': re.sub('[%s]' % re.escape(string.punctuation), '', inv.partner_id.inscr_est or ''), + 'IE': punctuation_rm(inv.partner_id.inscr_est), 'ISUF': '', 'email': inv.partner_id.email or '', } @@ -238,16 +238,16 @@ def nfe_export(cr, uid, ids, nfe_environment='1', StrFile += StrE if inv.partner_id.is_company: - StrE0 = 'E02|%s|\n' % (re.sub('[%s]' % re.escape(string.punctuation), '', inv.partner_id.cnpj_cpf or '')) + StrE0 = 'E02|%s|\n' % (punctuation_rm(inv.partner_id.cnpj_cpf)) else: - StrE0 = 'E03|%s|\n' % (re.sub('[%s]' % re.escape(string.punctuation), '', inv.partner_id.cnpj_cpf or '')) + StrE0 = 'E03|%s|\n' % (punctuation_rm(inv.partner_id.cnpj_cpf)) StrFile += StrE0 StrRegE05 = { 'xLgr': normalize('NFKD',unicode(inv.partner_id.street or '')).encode('ASCII','ignore'), 'nro': normalize('NFKD',unicode(inv.partner_id.number or '')).encode('ASCII','ignore'), - 'xCpl': re.sub('[%s]' % re.escape(string.punctuation), '', normalize('NFKD',unicode(inv.partner_id.street2 or '' )).encode('ASCII','ignore')), + 'xCpl': punctuation_rm(normalize('NFKD',unicode(inv.partner_id.street2 or '' )).encode('ASCII','ignore')), 'xBairro': normalize('NFKD',unicode(inv.partner_id.district or 'Sem Bairro')).encode('ASCII','ignore'), 'cMun': address_invoice_city_code, 'xMun': address_invoice_city, @@ -255,7 +255,7 @@ def nfe_export(cr, uid, ids, nfe_environment='1', 'CEP': partner_cep, 'cPais': partner_bc_code, 'xPais': normalize('NFKD',unicode(inv.partner_id.country_id.name or '')).encode('ASCII','ignore'), - 'fone': re.sub('[%s]' % re.escape(string.punctuation), '', str(inv.partner_id.phone or '').replace(' ','')), + 'fone': punctuation_rm(inv.partner_id.phone), } StrE05 = 'E05|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|\n' % (StrRegE05['xLgr'], StrRegE05['nro'], StrRegE05['xCpl'], StrRegE05['xBairro'], @@ -271,8 +271,8 @@ def nfe_export(cr, uid, ids, nfe_environment='1', StrRegG = { 'XLgr': normalize('NFKD',unicode(inv.partner_shipping_id.street or '',)).encode('ASCII','ignore'), 'Nro': normalize('NFKD',unicode(inv.partner_shipping_id.number or '')).encode('ASCII','ignore'), - 'XCpl': re.sub('[%s]' % re.escape(string.punctuation), '', normalize('NFKD',unicode(inv.partner_shipping_id.street2 or '' )).encode('ASCII','ignore')), - 'XBairro': re.sub('[%s]' % re.escape(string.punctuation), '', normalize('NFKD',unicode(inv.partner_shipping_id.district or 'Sem Bairro' )).encode('ASCII','ignore')), + 'XCpl': punctuation_rm(normalize('NFKD',unicode(inv.partner_shipping_id.street2 or '' )).encode('ASCII','ignore')), + 'XBairro': punctuation_rm(normalize('NFKD',unicode(inv.partner_shipping_id.district or 'Sem Bairro' )).encode('ASCII','ignore')), 'CMun': ('%s%s') % (inv.partner_shipping_id.state_id.ibge_code, inv.partner_shipping_id.l10n_br_city_id.ibge_code), 'XMun': normalize('NFKD',unicode(inv.partner_shipping_id.l10n_br_city_id.name or '')).encode('ASCII','ignore'), 'UF': inv.partner_shipping_id.state_id.code, @@ -282,9 +282,9 @@ def nfe_export(cr, uid, ids, nfe_environment='1', StrFile += StrG if inv.partner_id.is_company: - StrG0 = 'G02|%s|\n' % (re.sub('[%s]' % re.escape(string.punctuation), '', inv.partner_id.cnpj_cpf or '')) + StrG0 = 'G02|%s|\n' % (punctuation_rm(inv.partner_id.cnpj_cpf)) else: - StrG0 = 'G02a|%s|\n' % (re.sub('[%s]' % re.escape(string.punctuation), '', inv.partner_id.cnpj_cpf or '')) + StrG0 = 'G02a|%s|\n' % (punctuation_rm(inv.partner_id.cnpj_cpf)) StrFile += StrG0 @@ -349,8 +349,8 @@ def nfe_export(cr, uid, ids, nfe_environment='1', 'nItemPed': '', } - StrRegI['NCM'] = re.sub('[%s]' % re.escape(string.punctuation), - '', inv_line.fiscal_classification_id.name or '') + StrRegI['NCM'] = punctuation_rm( + inv_line.fiscal_classification_id.name) StrI = 'I|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|\n' % (StrRegI['CProd'], StrRegI['CEAN'], StrRegI['XProd'], StrRegI['NCM'], StrRegI['EXTIPI'], StrRegI['CFOP'], StrRegI['UCom'], StrRegI['QCom'], @@ -724,7 +724,7 @@ def nfe_export(cr, uid, ids, nfe_environment='1', 'VAliq': str("%.2f" % inv_line.issqn_percent), 'VISSQN': str("%.2f" % inv_line.issqn_value), 'CMunFG': ('%s%s') % (inv.partner_id.state_id.ibge_code, inv.partner_id.l10n_br_city_id.ibge_code), - 'CListServ': re.sub('[%s]' % re.escape(string.punctuation), '', inv_line.service_type_id.code or ''), + 'CListServ': punctuation_rm(inv_line.service_type_id.code), 'cSitTrib': inv_line.issqn_type } @@ -740,7 +740,7 @@ def nfe_export(cr, uid, ids, nfe_environment='1', StrQ = 'Q|\n' StrFile += StrQ - if pis_cst in ('01') and inv_line.pis_percent > 0: + if pis_cst in ('01', '02') and inv_line.pis_percent > 0: StrRegQ02 = { 'CST': pis_cst, 'VBC': str("%.2f" % inv_line.pis_base), @@ -780,7 +780,7 @@ def nfe_export(cr, uid, ids, nfe_environment='1', StrFile += StrQ - if cofins_cst in ('01') and inv_line.cofins_percent > 0: + if cofins_cst in ('01', '02') and inv_line.cofins_percent > 0: StrRegS02 = { 'CST': cofins_cst, 'VBC': str("%.2f" % inv_line.cofins_base), @@ -887,9 +887,9 @@ def nfe_export(cr, uid, ids, nfe_environment='1', StrRegX03['XMun'] = normalize('NFKD', unicode(carrier_addr_default.l10n_br_city_id.name or '')).encode('ASCII', 'ignore') if inv.carrier_id.partner_id.is_company: - StrX0 = 'X04|%s|\n' % (re.sub('[%s]' % re.escape(string.punctuation), '', inv.carrier_id.partner_id.cnpj_cpf or '')) + StrX0 = 'X04|%s|\n' % (punctuation_rm(inv.carrier_id.partner_id.cnpj_cpf)) else: - StrX0 = 'X05|%s|\n' % (re.sub('[%s]' % re.escape(string.punctuation), '', inv.carrier_id.partner_id.cnpj_cpf or '')) + StrX0 = 'X05|%s|\n' % (punctuation_rm(inv.carrier_id.partner_id.cnpj_cpf)) except AttributeError: pass StrX03 = 'X03|%s|%s|%s|%s|%s|\n' % (StrRegX03['XNome'], StrRegX03['IE'], StrRegX03['XEnder'], StrRegX03['UF'], StrRegX03['XMun']) From 05de50fa6c75f688af5caaf1cb4c79f9c646b726 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Fri, 10 Oct 2014 01:44:20 -0300 Subject: [PATCH 4/5] adicionado arquivo l10n_br_base/tools/misc.py --- l10n_br_base/tools/misc.py | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 l10n_br_base/tools/misc.py diff --git a/l10n_br_base/tools/misc.py b/l10n_br_base/tools/misc.py new file mode 100644 index 000000000..98edab273 --- /dev/null +++ b/l10n_br_base/tools/misc.py @@ -0,0 +1,27 @@ +# -*- encoding: utf-8 -*- +############################################################################### +# # +# Copyright (C) 2014 Renato Lima - Akretion # +# # +#This program is free software: you can redistribute it and/or modify # +#it under the terms of the GNU Affero General Public License as published by # +#the Free Software Foundation, either version 3 of the License, or # +#(at your option) any later version. # +# # +#This program is distributed in the hope that it will be useful, # +#but WITHOUT ANY WARRANTY; without even the implied warranty of # +#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +#GNU Affero General Public License for more details. # +# # +#You should have received a copy of the GNU Affero General Public License # +#along with this program. If not, see . # +############################################################################### + +import re +import string + + +def punctuation_rm(string_value): + tmp_value = (re.sub('[%s]' % re.escape(string.punctuation), '', + string_value or '')) + return tmp_value From 6037723a9cc129d4e37b949435fbeeabc15cad9f Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Tue, 14 Oct 2014 01:20:34 -0300 Subject: [PATCH 5/5] =?UTF-8?q?[FIX]=20campos=20de=20telefones=20na=20roti?= =?UTF-8?q?na=20de=20exporta=C3=A7=C3=A3o=20em=20TXT=20e=20XML?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- l10n_br_account_product/sped/nfe/document.py | 4 ++-- l10n_br_account_product/sped/nfe/serializer/txt.py | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/l10n_br_account_product/sped/nfe/document.py b/l10n_br_account_product/sped/nfe/document.py index 3f13f9374..ac601745d 100644 --- a/l10n_br_account_product/sped/nfe/document.py +++ b/l10n_br_account_product/sped/nfe/document.py @@ -150,7 +150,7 @@ def _serializer(self, cr, uid, ids, nfe_environment, context=None): nfe.infNFe.emit.enderEmit.CEP.valor = punctuation_rm(company.zip) nfe.infNFe.emit.enderEmit.cPais.valor = company.country_id.bc_code[1:] nfe.infNFe.emit.enderEmit.xPais.valor = company.country_id.name - nfe.infNFe.emit.enderEmit.fone.valor = punctuation_rm(company.phone) + nfe.infNFe.emit.enderEmit.fone.valor = punctuation_rm(company.phone or '').replace(' ', '') nfe.infNFe.emit.IE.valor = punctuation_rm(inv.company_id.partner_id.inscr_est) nfe.infNFe.emit.IEST.valor = '' nfe.infNFe.emit.IM.valor = punctuation_rm(inv.company_id.partner_id.inscr_mun) @@ -200,7 +200,7 @@ def _serializer(self, cr, uid, ids, nfe_environment, context=None): nfe.infNFe.dest.enderDest.CEP.valor = partner_cep nfe.infNFe.dest.enderDest.cPais.valor = partner_bc_code nfe.infNFe.dest.enderDest.xPais.valor = inv.partner_id.country_id.name or '' - nfe.infNFe.dest.enderDest.fone.valor = punctuation_rm(inv.partner_id.phone) + nfe.infNFe.dest.enderDest.fone.valor = punctuation_rm(inv.partner_id.phone or '').replace(' ', '') nfe.infNFe.dest.email.valor = inv.partner_id.email or '' # diff --git a/l10n_br_account_product/sped/nfe/serializer/txt.py b/l10n_br_account_product/sped/nfe/serializer/txt.py index a2861a6a0..9433ba945 100644 --- a/l10n_br_account_product/sped/nfe/serializer/txt.py +++ b/l10n_br_account_product/sped/nfe/serializer/txt.py @@ -189,7 +189,7 @@ def nfe_export(cr, uid, ids, nfe_environment='1', 'CEP': punctuation_rm(company_addr_default.zip), 'cPais': address_company_bc_code or '', 'xPais': normalize('NFKD',unicode(company_addr_default.country_id.name or '')).encode('ASCII','ignore'), - 'fone': punctuation_rm(company_addr_default.phone), + 'fone': punctuation_rm(company_addr_default.phone or '').replace(' ', ''), } StrC05 = 'C05|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|\n' % (StrRegC05['XLgr'], StrRegC05['Nro'], StrRegC05['Cpl'], StrRegC05['Bairro'], @@ -255,7 +255,7 @@ def nfe_export(cr, uid, ids, nfe_environment='1', 'CEP': partner_cep, 'cPais': partner_bc_code, 'xPais': normalize('NFKD',unicode(inv.partner_id.country_id.name or '')).encode('ASCII','ignore'), - 'fone': punctuation_rm(inv.partner_id.phone), + 'fone': punctuation_rm(inv.partner_id.phone or '').replace(' ', ''), } StrE05 = 'E05|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|\n' % (StrRegE05['xLgr'], StrRegE05['nro'], StrRegE05['xCpl'], StrRegE05['xBairro'],