Repository
OCA/l10n-brazil · module folder · Try on Runboat
Module version
1.0.1
Category
Point Of Sale
Folder size
0.5 MB
License
AGPL-3
Application
No
Auto-installable
No
Website
https://github.com/OCA/l10n-brazil
Last tracking update
2026-08-07 08:09:14
Authors
Odoo Community Association (OCA), KMEE
Maintainers
Odoo Community Association (OCA), KMEE
Committers
Renato Lima, OCA-git-bot, oca-ci, Kaynnan Lemes
Odoo dependencies
Python dependencies
erpbrasil.base, email-validator, num2words, phonenumbers, brazilcep
System dependencies
None
Required by
None
Description
This module adds brazilian fields, validations and tax calc to point of
sale.

Code Analysis

Views touched (15)
XML IDNameModelTypeStatus
l10n_br_pos_cfop_form l10n_br_pos.cfop l10n_br_account_product.cfop form Inherits l10n_br_account_product.l10n_br_account_product_cfop_form
l10n_br_pos_invoice_form l10n_br_pos.invoice.form account.invoice form Inherits l10n_br_account_product.l10n_br_account_product_nfe_form
l10n_br_pos_product_fiscal_map_form_view l10n_br_pos.product_fiscal_map.form (in l10n_br_pos) l10n_br_pos.product_fiscal_map form New
l10n_br_pos_product_fiscal_map_search_view l10n_br_pos.product_fiscal_map.search (in l10n_br_pos) l10n_br_pos.product_fiscal_map search New
l10n_br_pos_product_fiscal_map_tree_view l10n_br_pos.product_fiscal_map.tree (in l10n_br_pos) l10n_br_pos.product_fiscal_map tree New
pos_order_line_devolucao_form_view pos.order.line.devolucao.form.view pos.order.line form Inherits point_of_sale.view_pos_order_line_form
pos_order_line_devolucao_tree_all_sales_line_view pos.order.line.devolucao.tree.all.sales.line.view pos.order.line tree Inherits point_of_sale.view_pos_order_tree_all_sales_lines
pos_order_line_devolucao_tree_view pos.order.line.devolucao.tree.view pos.order.line tree Inherits point_of_sale.view_pos_order_line
view_l10n_br_pos_pos_method_term_form l10n_br_pos pos.payment.method.form pos.payment.method form Inherits point_of_sale.pos_payment_method_view_form
view_l10n_br_pos_search l10n_br_pos.order.search pos.order search Inherits point_of_sale.view_pos_order_filter
view_pos_config_form pos.config.form (in l10n_br_pos) pos.config form Inherits point_of_sale.pos_config_view_form
view_pos_order_tree POS Order (hide invoice ID and show simplified fields) pos.order tree Inherits point_of_sale.view_pos_order_tree
view_pos_pos_form POS Order (remove invoice button) pos.order form Inherits point_of_sale.view_pos_pos_form
view_product_template_from product.template in (l10n_br_pos) product.template form Inherits point_of_sale.product_template_form_view
view_res_company_sat_form Res Company SAT res.company form Inherits l10n_br_fiscal.fiscal_res_company_form
HTTP endpoints (0)

No HTTP endpoints found for this module.

Models touched (13)

New fields (1)
  • is_pos Boolean
    help='Check this selection so that the CFOP can be used at the Point of Sale.' string='Allowed at the POS'
Public methods (0)

No public methods.

New fields (1)
  • pos_related_id Many2one → pos.order
    comodel_name='pos.order' index=True ondelete='cascade' string='POS Fiscal Document'
Public methods (1)
  • onchange_pos_related_id(self)
    @api.onchange('pos_related_id')

New fields (17)
  • cfop_code Char
    related='cfop_id.code'
  • comment_ids Many2many → l10n_br_fiscal.comment
    column1='pos_fiscal_map_id' column2='comment_id' comodel_name='l10n_br_fiscal.comment' relation='pos_fiscal_map_comment_rel' string='Comments'
  • company_id Many2one
    related='pos_config_id.company_id'
  • company_tax_framework Selection
    related='company_id.tax_framework'
  • fiscal_operation_id Many2one
    related='pos_config_id.out_pos_fiscal_operation_id'
  • fiscal_tax_ids Many2many → l10n_br_fiscal.tax
    column1='pos_fiscal_map_id' column2='fiscal_tax_id' comodel_name='l10n_br_fiscal.tax' relation='pos_fiscal_map_tax_rel' string='Fiscal Taxes'
  • ind_final Selection
    related='partner_id.ind_final'
  • name Char
  • ncm_code Char
    related='ncm_id.code_unmasked'
  • ncm_code_exception Char
    related='ncm_id.exception'
  • partner_id Many2one → res.partner
    comodel_name='res.partner'
  • pos_config_id Many2one → pos.config
    comodel_name='pos.config'
  • price_unit Float
    default=1 readonly=True
  • product_id Many2one
    related='product_tmpl_id.product_variant_id'
  • product_tmpl_id Many2one → product.template
    comodel_name='product.template'
  • quantity Float
    default=1 readonly=True
  • tax_framework Selection
    related='company_id.tax_framework' string='Tax Framework'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • message_post_with_view(self, views_or_xmlid, **kwargs)

New fields (30)
  • activation_code Char
  • additional_data Text
    string='Aditional Information'
  • anonymous_simplified_limit Float
    default=10000 digits='Account' help='Over this amount is not legally posible to create a Anonymous NFC-E / CF-e'
  • ask_identity Boolean
    default=False string='Ask Identity on Payment'
  • cashier_number Integer
    copy=False
  • certificate_nfe_id Many2one → l10n_br_fiscal.certificate
    comodel_name='l10n_br_fiscal.certificate' string='Digital certificate'
  • cfop_ids One2many → l10n_br_fiscal.cfop
    comodel_name='l10n_br_fiscal.cfop' compute='_compute_allowed_tax' readonly=True string='Allowed CFOPs'
  • cnpj_homologation Char
    size=18
  • cnpj_software_house Char
    size=18
  • detailed_document_type Char
    related='detailed_document_type_id.code' store=True string='Detailed document type'
  • detailed_document_type_id Many2one → l10n_br_fiscal.document.type
    comodel_name='l10n_br_fiscal.document.type'
  • fiscal_printer_type Selection
    selection=[('BluetoothConnection', 'Bluetooth'), ('DummyConnection', 'Dummy'), ('FileConnection', 'File'), ('NetworkConnection', 'Network'), ('SerialConnection', 'Serial'), ('USBConnection', 'USB'), ('CupsConnection', 'Cups')]
  • ie_homologation Char
    size=16
  • iface_fiscal_via_proxy Boolean
    string='Fiscal via IOT'
  • iface_nfce_via_proxy Boolean
    help='NFC-E can be issued by cloud or IoT, not requiring Odoo server\n to be turned on' string='NFC-e via IOT'
  • out_pos_fiscal_operation_id Many2one → l10n_br_fiscal.operation
    comodel_name='l10n_br_fiscal.operation' default=<expr> string='Default Sales Operation'
  • out_pos_fiscal_operation_line_ids One2many → l10n_br_fiscal.operation.line
    comodel_name='l10n_br_fiscal.operation.line' compute='_compute_allowed_tax' readonly=True string='Sales Operation Lines'
  • partner_id Many2one → res.partner
    comodel_name='res.partner'
  • pos_fiscal_map_ids One2many → l10n_br_pos.product_fiscal_map
    comodel_name='l10n_br_pos.product_fiscal_map' inverse_name='pos_config_id'
  • printer Selection
    selection=PRINTER
  • printer_params Char
    string='Printer parameters'
  • refund_pos_fiscal_operation_id Many2one → l10n_br_fiscal.operation
    comodel_name='l10n_br_fiscal.operation' default=<expr> string='Default Return Operation'
  • sat_environment Selection
    related='company_id.environment_sat' store=True
  • sat_path Char
  • save_identity_automatic Boolean
    default=False help='Activating will create a new identity customer to the partners data' string='Save new client'
  • session_sat Integer
    default=1 string='Last Session Value'
  • signature_sat Char
    args: 'Signature in CFe'
  • simplified_document_type Char
    related='simplified_document_type_id.code' store=True string='Simplified document type'
  • simplified_document_type_id Many2one → l10n_br_fiscal.document.type
    comodel_name='l10n_br_fiscal.document.type'
  • simplified_invoice_limit Float
    default=200000 digits='Account' help='Over this amount is not legally posible to create a simplified invoice'
Public methods (2)
  • update_pos_fiscal_map(self)
  • update_session_sat(self, config_id)
    @api.model

New fields (39)
  • additional_data Text
  • authorization_date Datetime
    copy=False
  • authorization_file Binary
    readonly=True
  • authorization_protocol Char
    readonly=True
  • cancel_date Datetime
    copy=False
  • cancel_document_file_id Many2one → ir.attachment
    comodel_name='ir.attachment' copy=False readonly=True string='Cancel XML'
  • cancel_document_key Char
    copy=False index=True readonly=True states={'draft': [('readonly', False)]} string='Cancel Key'
  • cancel_document_session_number Char
    copy=False readonly=True states={'draft': [('readonly', False)]} string='Cancel Session identifier number'
  • cancel_file Binary
    readonly=True
  • cancel_protocol Char
    readonly=True
  • cnpj_cpf Char
    readonly=True related=False states={'draft': [('readonly', False)]} string='CNPJ/CPF'
  • comment_ids Many2many → l10n_br_fiscal.comment
    column1='pos_order_id' column2='comment_id' comodel_name='l10n_br_fiscal.comment' relation='pos_order_fiscal_comment_rel' string='Comments'
  • date_in_out Datetime
    copy=False string='Date Move'
  • document_date Date
    string='Date'
  • document_electronic Boolean
    related='document_type_id.electronic' store=True string='Electronic?'
  • document_file_id Many2one → ir.attachment
    comodel_name='ir.attachment' copy=False readonly=True string='XML'
  • document_id Many2one → l10n_br_fiscal.document
    comodel_name='l10n_br_fiscal.document' copy=False readonly=True string='Fiscal Document'
  • document_key Char
    copy=False index=True readonly=True states={'draft': [('readonly', False)]} string='Key'
  • document_number Char
    copy=False index=True readonly=True states={'draft': [('readonly', False)]}
  • document_qrcode_signature Char
    copy=False string='QrCode Signature'
  • document_qrcode_url Char
    copy=False string='QrCode URL'
  • document_rps_number Char
    copy=False index=True readonly=True states={'draft': [('readonly', False)]} string='Document Number'
  • document_serie Char
    readonly=True states={'draft': [('readonly', False)]} string='Serie Number'
  • document_serie_id Many2one → l10n_br_fiscal.document.serie
    comodel_name='l10n_br_fiscal.document.serie' domain="[('active', '=', True),('document_type_id', '=', document_type_id)]" readonly=True states={'draft': [('readonly', False)]}
  • document_session_number Char
    copy=False string='Session identifier number'
  • document_type Char
    related='document_type_id.code' store=True
  • document_type_id Many2one → l10n_br_fiscal.document.type
    comodel_name='l10n_br_fiscal.document.type' readonly=True states={'draft': [('readonly', False)]}
  • edoc_purpose Selection
    default='1' readonly=True selection=[('1', 'Normal'), ('2', 'Complementary'), ('3', 'Adjustment'), ('4', 'Goods return')] states={'draft': [('readonly', False)]} string='Goal'
  • fiscal_coupon_date Datetime
    index=True readonly=True string='Coupon Fiscal Date'
  • 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
    default=NFCE_IND_PRES_DEFAULT readonly=True states={'draft': [('readonly', False)]}
  • legal_name Char
    related='partner_id.legal_name' string='Legal Name'
  • operation_name Char
    copy=False
  • partner_shipping_id Many2one → res.partner
    comodel_name='res.partner' string='Shipping Address'
  • state_edoc Selection
    copy=False index=True selection=SITUACAO_EDOC string='e-doc Status'
  • status_code Char
    copy=False
  • status_description Char
    copy=False string='Status Name'
  • status_name Char
    copy=False
Public methods (3)
  • cancel_order(self, result)
    @api.model
  • refund(self)
  • search_paid_order_ids(self, config_id, domain, limit, offset)
    @api.model
    Search for 'paid' orders that satisfy the given domain, limit and offset.

New fields (5)
  • comment_ids Many2many → l10n_br_fiscal.comment
    column1='pos_order_line_id' column2='comment_id' comodel_name='l10n_br_fiscal.comment' relation='pos_order_line_fiscal_comment_rel' string='Comments'
  • document_id Many2one → l10n_br_fiscal.document
    comodel_name='l10n_br_fiscal.document' readonly=True related='order_id.document_id' store=True
  • fiscal_tax_ids Many2many → l10n_br_fiscal.tax
    column1='pos_order_line_id' column2='order_line_id' comodel_name='l10n_br_fiscal.tax' relation='pos_order_line_tax_rel' string='Fiscal Taxes'
  • quantity Float
    depends=['qty'] related='qty' string='Product Uom Quantity'
  • uom_id Many2one
    depends=['product_uom_id'] related='product_uom_id'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • update_pos_fiscal_map(self)
    @api.depends_context('company')

New fields (1)
  • pos_fiscal_map_ids One2many → l10n_br_pos.product_fiscal_map
    comodel_name='l10n_br_pos.product_fiscal_map' inverse_name='product_tmpl_id'
Public methods (3)
  • create(self, vals_list)
    @api.model_create_multi
  • update_pos_fiscal_map(self)
    @api.depends_context('company')
  • write(self, vals)

New fields (5)
  • cnpj_software_house Char
    size=18 string='CNPJ software house'
  • environment_sat Selection
    default='homologation' selection=[('homologation', 'Homologation'), ('production', 'Production')] string='SAT environment'
  • out_pos_fiscal_operation_id Many2one → l10n_br_fiscal.operation
    comodel_name='l10n_br_fiscal.operation' string='Pos Out Fiscal Operation'
  • refund_pos_fiscal_operation_id Many2one → l10n_br_fiscal.operation
    comodel_name='l10n_br_fiscal.operation' string='Pos Refund Fiscal Operation'
  • sign_software_house Text
    string='Software House Signature'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • create_from_ui(self, partner)
    @api.model

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

Loading…