Brazilian Localization Sale Blanket Order

l10n_br_sale_blanket_order
REPOSITORY
REPOSITORYOCA/l10n-brazil
GIT
GIThttps://github.com/OCA/l10n-brazil.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-brazil/tree/16.0/l10n_br_sale_blanket_order
VERSION
VERSION 2.2.0
CATEGORY
CATEGORYUncategorized
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Escodoo
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Escodoo
COMMITTERS
COMMITTERSOCA-git-bot, oca-ci, Marcel Savegnago, Wesley Oliveira, CristianoMafraJunior, kaynnan, Cristiano Mafra Junior
WEBSITE
WEBSITEhttps://github.com/OCA/l10n-brazil
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:11:55
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/l10n-brazil:
    - l10n_br_sale
    - l10n_br_account
    - l10n_br_coa
    - l10n_br_fiscal
    - l10n_br_base
OCA/product-attribute:
    - uom_alias
OCA/sale-workflow:
    - sale_blanket_order
OCA/web:
    - web_action_conditionable
odoo/odoo:
    - uom
    - base
    - sale_management
    - sale
    - sales_team
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - account_payment
    - account
    - product
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - payment
    - utm
    - base_address_extended
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES erpbrasil.base
email-validator
num2words
phonenumbers
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
This module extends the Odoo Sale Blanket Order module to adapt it to
the Brazilian needs, with this module you have tax data for collection
and generation of fiscal documents (NF-e, NFS-e, CF-e, NFC-e and
others), calculation Brazilian taxes and contributions (municipal, state
and federal).

Code Analysis

Views touched (2)
XML IDNameModelTypeStatus
inherit_sale_blanket_order_line_form_fiscal_tabs sale.blanket.order.line.form.fiscal.inherit sale.blanket.order.line xpath Inherits sale_blanket_order.sale_blanket_order_line_form
sale_blanket_order_form_view sale.blanket.order.form (in l10n_br_sale_blanket_order) sale.blanket.order field Inherits sale_blanket_order.view_blanket_order_form
Models touched (3)

New fields (8)
  • cnpj_cpf Char
    related='partner_id.vat' string='CNPJ/CPF'
  • comment_ids Many2many → l10n_br_fiscal.comment
    column1='sale_blanket_order_id' column2='comment_id' comodel_name='l10n_br_fiscal.comment' relation='sale_blanket_order_comment_rel' string='Comments'
  • copy_note Boolean
    default=_default_copy_note string='Copy Sale note on invoice'
  • fiscal_operation_id Many2one → l10n_br_fiscal.operation
    comodel_name='l10n_br_fiscal.operation' default=_default_fiscal_operation domain=<expr> readonly=True states={'draft': [('readonly', False)]}
  • ind_pres Selection
    readonly=True states={'draft': [('readonly', False)]}
  • l10n_br_ie_code Char
    related='partner_id.l10n_br_ie_code' string='State Tax Number/RG'
  • legal_name Char
    related='partner_id.legal_name' string='Legal Name'
  • operation_name Char
    copy=False
Public methods (0)

No public methods.

New fields (16)
  • cnae_id Many2one → l10n_br_fiscal.cnae
    comodel_name='l10n_br_fiscal.cnae' domain=<expr> string='CNAE Code'
  • comment_ids Many2many → l10n_br_fiscal.comment
    column1='sale_blanket_order_line_id' column2='comment_id' comodel_name='l10n_br_fiscal.comment' relation='sale_blanket_order_line_comment_rel' string='Comments'
  • country_id Many2one
    related='company_id.country_id' store=True
  • fiscal_operation_id Many2one → l10n_br_fiscal.operation
    comodel_name='l10n_br_fiscal.operation' domain=<expr>
  • fiscal_operation_line_id Many2one → l10n_br_fiscal.operation.line
    comodel_name='l10n_br_fiscal.operation.line' domain="[('fiscal_operation_id', '=', fiscal_operation_id), ('state', '=', 'approved')]" string='Operation Line'
  • fiscal_qty_delivered Float
    related='delivered_uom_qty' string='Fiscal Utm Qty Delivered'
  • fiscal_tax_ids Many2many → l10n_br_fiscal.tax
    column1='document_id' column2='fiscal_tax_id' comodel_name='l10n_br_fiscal.tax' relation='fiscal_sale_blanket_order_line_tax_rel' string='Fiscal Taxes'
  • ind_final Selection
    related='order_id.ind_final'
  • partner_id Many2one → res.partner
    comodel_name='res.partner' related='order_id.partner_id' string='Partner'
  • price_gross Monetary
    compute='_compute_amount' compute_sudo=True string='Gross Amount'
  • price_subtotal Monetary
    compute_sudo=True
  • price_tax Monetary
    compute_sudo=True
  • price_total Monetary
    compute_sudo=True
  • quantity Float
    related='original_uom_qty' string='Product Uom Quantity'
  • tax_framework Selection
    related='order_id.company_id.tax_framework' string='Tax Framework'
  • uom_id Many2one
    related='product_uom'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/l10n-brazil
GIT
GIThttps://github.com/OCA/l10n-brazil.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-brazil/tree/14.0/l10n_br_sale_blanket_order
VERSION
VERSION 2.0.0
CATEGORY
CATEGORYUncategorized
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Escodoo
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Escodoo
COMMITTERS
COMMITTERSWeblate, OCA-git-bot, Magno Costa, oca-ci, Marcel Savegnago, Antônio Neto
WEBSITE
WEBSITEhttps://github.com/OCA/l10n-brazil
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:40:53
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/account-payment:
    - account_due_list
OCA/l10n-brazil:
    - l10n_br_sale
    - l10n_br_account
    - l10n_br_coa
    - l10n_br_fiscal
    - l10n_br_base
    - l10n_br_account_due_list
OCA/sale-workflow:
    - sale_blanket_order
OCA/web:
    - web_action_conditionable
odoo/odoo:
    - uom
    - base
    - sale_management
    - sale
    - sales_team
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - payment
    - account
    - product
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - utm
    - base_address_city
    - base_address_extended
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES erpbrasil.base
email-validator
num2words
phonenumbers
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (1)
XML IDNameModelTypeStatus
sale_blanket_order_form_view sale.blanket.order.form (in l10n_br_sale_blanket_order) sale.blanket.order field Inherits sale_blanket_order.view_blanket_order_form
Models touched (3)

New fields (8)
  • cnpj_cpf Char
    related='partner_id.cnpj_cpf' string='CNPJ/CPF'
  • comment_ids Many2many → l10n_br_fiscal.comment
    column1='sale_blanket_order_id' column2='comment_id' comodel_name='l10n_br_fiscal.comment' relation='sale_blanket_order_comment_rel' string='Comments'
  • copy_note Boolean
    default=_default_copy_note string='Copy Sale note on invoice'
  • fiscal_operation_id Many2one → l10n_br_fiscal.operation
    comodel_name='l10n_br_fiscal.operation' default=_default_fiscal_operation domain=<expr> readonly=True states={'draft': [('readonly', False)]}
  • ie Char
    related='partner_id.inscr_est' string='State Tax Number/RG'
  • ind_pres Selection
    readonly=True states={'draft': [('readonly', False)]}
  • legal_name Char
    related='partner_id.legal_name' string='Legal Name'
  • operation_name Char
    copy=False
Public methods (1)
  • fields_view_get(self, view_id=None, view_type='form', toolbar=False, submenu=False)
    @api.model

New fields (16)
  • cnae_id Many2one → l10n_br_fiscal.cnae
    comodel_name='l10n_br_fiscal.cnae' domain=<expr> string='CNAE Code'
  • comment_ids Many2many → l10n_br_fiscal.comment
    column1='sale_blanket_order_line_id' column2='comment_id' comodel_name='l10n_br_fiscal.comment' relation='sale_blanket_order_line_comment_rel' string='Comments'
  • country_id Many2one
    related='company_id.country_id' store=True
  • fiscal_operation_id Many2one → l10n_br_fiscal.operation
    comodel_name='l10n_br_fiscal.operation' default=_default_fiscal_operation domain=<expr>
  • fiscal_operation_line_id Many2one → l10n_br_fiscal.operation.line
    comodel_name='l10n_br_fiscal.operation.line' domain="[('fiscal_operation_id', '=', fiscal_operation_id), ('state', '=', 'approved')]" string='Operation Line'
  • fiscal_qty_delivered Float
    depends=['delivered_uom_qty'] related='delivered_uom_qty' string='Fiscal Utm Qty Delivered'
  • fiscal_tax_ids Many2many → l10n_br_fiscal.tax
    column1='document_id' column2='fiscal_tax_id' comodel_name='l10n_br_fiscal.tax' relation='fiscal_sale_blanket_order_line_tax_rel' string='Fiscal Taxes'
  • ind_final Selection
    related='order_id.ind_final'
  • partner_id Many2one → res.partner
    comodel_name='res.partner' related='order_id.partner_id' string='Partner'
  • price_gross Monetary
    compute='_compute_amount' compute_sudo=True string='Gross Amount'
  • price_subtotal Monetary
    compute_sudo=True
  • price_tax Monetary
    compute_sudo=True
  • price_total Monetary
    compute_sudo=True
  • quantity Float
    depends=['original_uom_qty'] related='original_uom_qty' string='Product Uom Quantity'
  • tax_framework Selection
    related='order_id.company_id.tax_framework' string='Tax Framework'
  • uom_id Many2one
    depends=['product_uom'] related='product_uom'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

STATUS
STATUSOpen migration PR - not merged yet for this version
REPOSITORY
REPOSITORYOCA/l10n-brazil
PULL REQUEST
PULL REQUEST[18.0][MIG] l10n_br_sale_blanket_order: Migration to 18.0 (#4642)