Código fonte para l10n_br_base.models.res_company

# -*- coding: utf-8 -*-
#    OpenERP, Open Source Management Solution
#    Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
#    Thinkopen - Brasil
#    Copyright (C) Thinkopen Solutions (<http://www.thinkopensolutions.com.br>)
#    Akretion
#    Copyright (C) Akretion (<http://www.akretion.com>)
# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html

import re

from openerp import models, fields, api


[documentos]class ResCompany(models.Model): _inherit = 'res.company' @api.multi def _get_l10n_br_data(self): """ Read the l10n_br specific functional fields. """ for obj in self: obj.legal_name = obj.partner_id.legal_name obj.cnpj_cpf = obj.partner_id.cnpj_cpf obj.number = obj.partner_id.number obj.district = obj.partner_id.district obj.l10n_br_city_id = obj.partner_id.l10n_br_city_id obj.inscr_est = obj.partner_id.inscr_est obj.inscr_mun = obj.partner_id.inscr_mun obj.suframa = obj.partner_id.suframa @api.multi def _set_l10n_br_legal_name(self): """ Write the l10n_br specific functional fields. """ self.ensure_one() self.partner_id.legal_name = self.legal_name @api.multi def _set_l10n_br_number(self): """ Write the l10n_br specific functional fields. """ self.ensure_one() self.partner_id.number = self.number @api.multi def _set_l10n_br_district(self): """ Write the l10n_br specific functional fields. """ self.ensure_one() self.partner_id.district = self.district @api.multi def _set_l10n_br_cnpj_cpf(self): """ Write the l10n_br specific functional fields. """ self.ensure_one() self.partner_id.cnpj_cpf = self.cnpj_cpf @api.multi def _set_l10n_br_inscr_est(self): """ Write the l10n_br specific functional fields. """ self.ensure_one() self.partner_id.inscr_est = self.inscr_est @api.multi def _set_l10n_br_inscr_mun(self): """ Write the l10n_br specific functional fields. """ self.ensure_one() self.partner_id.inscr_mun = self.inscr_mun @api.multi def _set_l10n_br_city_id(self): """ Write the l10n_br specific functional fields. """ self.ensure_one() self.partner_id.l10n_br_city_id = self.l10n_br_city_id @api.multi def _set_l10n_br_suframa(self): """ Write the l10n_br specific functional fields. """ self.ensure_one() self.partner_id.suframa = self.suframa legal_name = fields.Char( compute=_get_l10n_br_data, inverse=_set_l10n_br_legal_name, size=128, string=u'Razão Social') district = fields.Char( compute=_get_l10n_br_data, inverse=_set_l10n_br_district, size=32, string="Bairro", multi='address') number = fields.Char( compute=_get_l10n_br_data, inverse=_set_l10n_br_number, size=10, string=u"Número", multi='address') cnpj_cpf = fields.Char( compute=_get_l10n_br_data, inverse=_set_l10n_br_cnpj_cpf, size=18, string='CNPJ/CPF') inscr_est = fields.Char( compute=_get_l10n_br_data, inverse=_set_l10n_br_inscr_est, size=16, string='Inscr. Estadual') inscr_mun = fields.Char( compute=_get_l10n_br_data, inverse=_set_l10n_br_inscr_mun, size=18, string='Inscr. Municipal') suframa = fields.Char( compute=_get_l10n_br_data, inverse=_set_l10n_br_suframa, size=18, string='Suframa') l10n_br_city_id = fields.Many2one( 'l10n_br_base.city', 'Municipio', domain="[('state_id','=',state_id)]", compute=_get_l10n_br_data, inverse=_set_l10n_br_city_id) @api.onchange('cnpj_cpf') def _onchange_cnpj_cpf(self): country_code = self.country_id.code or '' if self.cnpj_cpf and country_code.upper() == 'BR': val = re.sub('[^0-9]', '', self.cnpj_cpf) if len(val) == 14: self.cnpj_cpf = "%s.%s.%s/%s-%s" % ( val[0:2], val[2:5], val[5:8], val[8:12], val[12:14]) @api.onchange('l10n_br_city_id') def _onchange_l10n_br_city_id(self): """ Ao alterar o campo l10n_br_city_id que é um campo relacional com o l10n_br_base.city que são os municípios do IBGE, copia o nome do município para o campo city que é o campo nativo do módulo base para manter a compatibilidade entre os demais módulos que usam o campo city. param int l10n_br_city_id: id do l10n_br_city_id digitado. return: dicionário com o nome e id do município. """ if self.l10n_br_city_id: self.city = self.l10n_br_city_id.name @api.onchange('zip') def _onchange_zip(self): if self.zip: val = re.sub('[^0-9]', '', self.zip) if len(val) == 8: self.zip = "%s-%s" % (val[0:5], val[5:8])