Repository
OCA/l10n-brazil · module folder · Try on Runboat
Module version
1.1.0
Category
Localization
Folder size
2.34 MB
License
AGPL-3
Application
No
Auto-installable
No
Website
https://github.com/OCA/l10n-brazil
Last tracking update
2026-08-07 09:06:24
Authors
Akretion, Odoo Community Association (OCA)
Maintainers
Akretion, Odoo Community Association (OCA)
Committers
Raphaël Valyi, Weblate, OCA-git-bot, oca-ci, Marcel Savegnago
Odoo dependencies
Python dependencies
email-validator, erpbrasil.base, num2words, phonenumbers
System dependencies
None
Required by
l10n_br_crm, l10n_br_fiscal, l10n_br_hr, l10n_br_resource, l10n_br_zip
Description
Este é o módulo 'raiz' da localização brasileira. Ele traz adaptações
nos modelos do módulo `base` do Odoo como Parceiros, Empresas e
Endereços:

- Campo CNPJ e CPF com formatação e validação destes campos;
- Campo de Inscrição Estadual com validação;
- Formatação dos campos de endereço;
- Código do Banco Central e Siscomex para países;
- Código do IBGE para estados e municípios;
- Lista dos Bancos brasileiros;
- Contas bancarias e chaves PIX dos parceiros;
- Lista dos municípios brasileiros.

Se trata de um módulo muito simples e maduro. Existem alguns outros
módulos simples que dependem apenas desse módulo ou quase como
`l10n_br_crm` ou `l10n_br_portal`.

Mas se você quiser emitir ou apenas gerenciar algum tipo de documento
fiscal como NF-e ou NFS-e, o próximo módulo que você deve olhar é o
`l10n_br_fiscal` que é porém um módulo muito mais complexo.

Code Analysis

Views touched (14)
XML IDNameModelTypeStatus
l10n_br_base_bank_form l10n_br_base.bank.form res.bank form Inherits base.view_res_bank_form
l10n_br_base_bank_tree l10n_br_base.bank.tree res.bank tree Inherits base.view_res_bank_tree
l10n_br_base_partner_contact_form l10n_br_base.res.partner.contact.form res.partner form Inherits base.view_partner_form
l10n_br_base_partner_form l10n_br_base.res.partner.form res.partner form Inherits base.view_partner_form
l10n_br_base_res_city_tree l10n_br_base.res.city.tree res.city tree Inherits base_address_extended.view_city_tree
l10n_br_base_res_company_form l10n_br_base.res.company.form res.company form Inherits base.view_company_form
l10n_br_base_res_company_tree l10n_br_base.res.company.tree res.company tree Inherits base.view_company_tree
l10n_br_base_res_config_settings_form res.config.settings.form res.config.settings form Inherits base_setup.res_config_settings_view_form
l10n_br_base_res_partner_address l10n_br_base.res.partner.address res.partner form New
l10n_br_base_res_partner_filter l10n_br_base.res.partner.filter res.partner Inherits base.view_res_partner_filter
view_l10n_br_base_partner_bank_form view_l10n_br_base.partner.bank.form res.partner.bank form Inherits base.view_partner_bank_form
view_l10n_br_base_partner_bank_tree view_l10n_br_base.partner.bank.tree res.partner.bank tree Inherits base.view_partner_bank_tree
view_l10n_br_country_form res.country res.country form Inherits base.view_country_form
view_l10n_br_country_state_form res.country.state res.country.state form Inherits base.view_country_state_form
HTTP endpoints (0)

No HTTP endpoints found for this module.

Models touched (12)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (10)
  • city_id Many2one → res.city
    comodel_name='res.city' domain="[('state_id', '=', state_id)]" string='City of Address'
  • cnpj_cpf_stripped Char
    compute='_compute_cnpj_cpf_stripped' help='CNPJ/CPF without special characters' index=True store=True string='CNPJ/CPF Stripped'
  • country_id Many2one → res.country
    comodel_name='res.country' default=<expr>
  • district Char
    size=32
  • l10n_br_ie_code Char
    size=17 string='State Tax Number'
  • l10n_br_im_code Char
    size=18 string='Municipal Tax Number'
  • l10n_br_isuf_code Char
    size=18 string='Suframa'
  • legal_name Char
    help='Used in fiscal documents' size=128
  • state_tax_number_ids One2many → state.tax.numbers
    comodel_name='state.tax.numbers' inverse_name='partner_id' string='Others State Tax Number'
  • vat Char
Public methods (1)
  • search(self, domain, offset=0, limit=None, order=None, count=False)
    @api.model
    in the case of a simple search with only OR terms and a vat ilike condition, inject the possibility to match the cnpj_cpf_stripped field.

New fields (4)
  • code_bc Char
    help='Brazilian Bank Code ex.: 001 is the code of Banco do Brasil' size=3 string='Brazilian Bank Code'
  • compe_member Boolean
    default=False string='COMPE Member'
  • ispb_number Char
    size=8 string='ISPB Number'
  • short_name Char
Public methods (0)

No public methods.

New fields (3)
  • anp_code Char
    size=4 string='ANP Code'
  • ibge_code Char
    index=True size=7 string='IBGE Code'
  • siafi_code Char
    size=4 string='SIAFI Code'
Public methods (0)

No public methods.

New fields (10)
  • city_id Many2one
    compute='_compute_address' domain="[('state_id', '=', state_id)]" inverse='_inverse_city_id'
  • country_id Many2one
    default=<expr>
  • district Char
    compute='_compute_address' inverse='_inverse_district'
  • l10n_br_ie_code Char
    compute='_compute_address' inverse='_inverse_l10n_br_ie_code'
  • l10n_br_im_code Char
    compute='_compute_address' inverse='_inverse_l10n_br_im_code'
  • l10n_br_isuf_code Char
    compute='_compute_address' inverse='_inverse_l10n_br_isuf_code'
  • legal_name Char
    compute='_compute_address' inverse='_inverse_legal_name'
  • state_tax_number_ids One2many → state.tax.numbers
    comodel_name='state.tax.numbers' compute='_compute_address' inverse='_inverse_state_tax_number_ids' inverse_name='company_id' string='State Tax Numbers'
  • street_name Char
    compute='_compute_address' inverse='_inverse_street_name'
  • street_number Char
    compute='_compute_address' inverse='_inverse_street_number'
Public methods (1)
  • write(self, values)
    Overriden so we can change the currency_id of base.main_company and specific demo companies even if constraints would normally prevent it.

New fields (4)
  • allow_cnpj_multi_ie Boolean
    config_parameter='l10n_br_base.allow_cnpj_multi_ie' default=False string='Multiple partners with the same CNPJ'
  • disable_cpf_cnpj_validation Boolean
    config_parameter='l10n_br_base.disable_cpf_cnpj_validation' default=False args: 'Disable CPF and CNPJ validation'
  • disable_ie_validation Boolean
    config_parameter='l10n_br_base.disable_ie_validation' default=False args: 'Disable IE validation'
  • module_l10n_br_zip Boolean
    string='Use Brazilian postal service API'
Public methods (0)

No public methods.

New fields (4)
  • bc_code Char
    size=4 string='BC Code'
  • ibge_code Char
    size=4 string='IBGE Code'
  • nationality_code Char
    size=2
  • siscomex_code Char
    size=3
Public methods (0)

No public methods.

New fields (1)
  • ibge_code Char
    size=2 string='IBGE Code'
Public methods (0)

No public methods.

New fields (4)
  • is_br_partner Boolean
    compute='_compute_br_partner' help='Is it a Brazilian partner?'
  • l10n_br_rg_code Char
    string='RG'
  • pix_key_ids One2many → res.partner.pix
    comodel_name='res.partner.pix' help='Keys for Brazilian instant payment (pix)' inverse_name='partner_id' string='Pix Keys'
  • show_l10n_br Boolean
    compute='_compute_show_l10n_br' help='Should display Brazilian localization fields?'
Public methods (2)
  • copy(self, default=None)
  • create_company(self)

New fields (9)
  • acc_number Char
    required=False size=64 string='Account Number'
  • acc_number_dig Char
    size=8 string='Account Digit'
  • bank_account_type Selection
    default='01' selection=BANK_ACCOUNT_TYPE
  • bra_bank_bic Char
    help='Last part of BIC/Swift Code.' size=3 string='BIC/Swift Final Code.'
  • bra_number Char
    size=8 string='Bank Branch'
  • bra_number_dig Char
    size=8 string='Bank Branch Digit'
  • company_country_id Many2one → res.country
    comodel_name='res.country' related='company_id.country_id' string='Company Country'
  • partner_pix_ids One2many → res.partner.pix
    comodel_name='res.partner.pix' inverse_name='partner_bank_id' string='Pix Keys'
  • transactional_acc_type Selection
    help='Type of transactional account, classification used in the Brazilian instant payment system (PIX)' selection=TRANSACTIONAL_ACCOUNT_TYPE string='Account Type'
Public methods (0)

No public methods.

New fields (5)
  • key Char
    help='PIX Addressing key' required=True
  • key_type Selection
    required=True selection=KEY_TYPES string='Type'
  • partner_bank_id Many2one → res.partner.bank
    comodel_name='res.partner.bank' domain="[('partner_id', '=', partner_id)]" string='Bank Account'
  • partner_id Many2one → res.partner
    comodel_name='res.partner' ondelete='cascade' required=True string='Partner'
  • sequence Integer
    default=10
Public methods (3)
  • check_vals(self, vals)
  • create(self, vals_list)
    @api.model_create_multi
  • write(self, vals)

New fields (4)
  • company_id Many2one → res.company
    comodel_name='res.company' ondelete='cascade' string='Company'
  • l10n_br_ie_code Char
    required=True size=16 string='State Tax Number'
  • partner_id Many2one → res.partner
    comodel_name='res.partner' ondelete='cascade' string='Partner'
  • state_id Many2one → res.country.state
    comodel_name='res.country.state' required=True string='State'
Public methods (0)

No public methods.

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…