NF-e

l10n_br_nfe
REPOSITORY
REPOSITORYOCA/l10n-brazil
GIT
GIThttps://github.com/OCA/l10n-brazil.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-brazil/tree/18.0/l10n_br_nfe
VERSION
VERSION 1.0.1
CATEGORY
CATEGORYLocalisation
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion, KMEE
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Akretion, KMEE
COMMITTERS
COMMITTERSRaphaël Valyi, Weblate, OCA-git-bot, Magno Costa, oca-ci
WEBSITE
WEBSITEhttps://github.com/OCA/l10n-brazil
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:30:09
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/l10n-brazil:
    - l10n_br_fiscal_edi
    - l10n_br_fiscal
    - l10n_br_base
    - l10n_br_fiscal_certificate
    - l10n_br_nfe_spec
    - spec_driven_model
    - l10n_br_fiscal_dfe
OCA/product-attribute:
    - uom_alias
odoo/odoo:
    - product
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - html_editor
    - uom
    - base_address_extended
    - contacts
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES brazilfiscalreport
erpbrasil.assinatura
erpbrasil.base
erpbrasil.edoc
erpbrasil.transmissao
nfelib
email-validator
num2words
phonenumbers
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Este módulo permite a emissão de NF-e.

Mais especificamente ele:  
- mapea os campos de NF-e do módulo `l10n_br_nfe_spec` com os campos
  Odoo em especial os campos dos módulos `l10n_br_base` e
  `l10n_br_fiscal`
- usa a logica do módulo `spec_driven_model` para realizar esse
  mapeamento de forma dinâmica, em especial ele usa o sistema de modelos
  com várias camadas, ou `StackedModel`, com os modelos
  `l10n_br_fiscal.document`, `l10n_br_fiscal.document.line` e
  `l10n_br_fiscal.document.related` que tem varios niveis hierarquicos
  de elementos XML que estão sendo denormalizados dentro desses modelos
  Odoo 
- permite a exportação e importação de XML de NF-e
- tem wizards para implementar a comunicação SOAP de NF-e com a SEFAZ
  (Autorização, Cancelamento, Inutilização...)
- implementa a autorização, inutilização e contingência de documentos
  NFC-e

Módulos relacionados:  
- este módulo não depende do módulo `account` do Odoo. A integração com
  o financeiro do módulo `account` é realizada no módulo
  `l10n_br_account_nfe` (tags dup e pag em especial)
- existe também o módulo `l10n_br_delivery_nfe` que faz a integração do
  módulo `l10n_br_nfe` com o módulo `delivery` do Odoo (tags de
  transportadora e de frete em especial)

Code Analysis

Views touched (15)
XML IDNameModelTypeStatus
document_import_wizard_form document_import_wizard.form l10n_br_fiscal.document.import.wizard xpath Inherits l10n_br_fiscal.document_import_wizard_form
l10n_br_nfe_import_xml_products_tree l10n_br_nfe.import_xml.products.tree l10n_br_nfe.import_xml.products list New
l10n_br_nfe_product_supplierinfo_form_view l10n_br_nfe.product.supplierinfo.form.view product.supplierinfo xpath Inherits product.product_supplierinfo_form_view
l10n_br_nfe_product_supplierinfo_tree_view l10n_br_nfe.product.supplierinfo.tree.view product.supplierinfo xpath Inherits product.product_supplierinfo_tree_view
nfe_40_infadic_form nfe.40.infadic.form nfe.40.infadic form New
nfe_40_vol_form nfe.40.vol.form nfe.40.vol form New
nfe_dfe_form l10n_br_nfe.dfe.form l10n_br_fiscal.dfe xpath Inherits l10n_br_fiscal_dfe.dfe_form
nfe_document_edi_form_inherit l10n_br_nfe_edi.document.form.inherit l10n_br_fiscal.document page Inherits l10n_br_fiscal_edi.document_form
nfe_document_form_inherit l10n_br_nfe.document.form.inherit l10n_br_fiscal.document xpath Inherits l10n_br_fiscal.document_form
nfe_res_company_form nfe.res.company.form res.company xpath Inherits l10n_br_fiscal.fiscal_res_company_form
nfe_res_config_settings_form nfe.res.config.settings.view.form res.config.settings xpath Inherits l10n_br_fiscal.l10n_br_fiscal_res_config_settings_form
report_danfe_nfce report_danfe_nfce ir.ui.view qweb New
view_l10n_br_nfe_mde_filter l10n_br_nfe_mde.select l10n_br_nfe.mde search New
view_l10n_br_nfe_mde_form l10n_br_nfe_mde.form l10n_br_nfe.mde form New
view_l10n_br_nfe_mde_tree l10n_br_nfe_mde.tree l10n_br_nfe.mde list New
Models touched (18)

New fields (0)

No new fields.

Public methods (1)
  • render_danfe_brazilfiscalreport(self, nfe, nfe_xml)

New fields (0)

No new fields.

Public methods (1)
  • match_or_create_m2o(self, rec_dict, parent_dict, model=None)
    @api.model
    If CEST not found, break hard, don't create it

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (1)
  • mde_ids One2many → l10n_br_nfe.mde
    comodel_name='l10n_br_nfe.mde' inverse_name='dfe_id' string='Manifestações do Destinatário Importadas'
Public methods (3)
  • find_mde_by_key(self, key)
    @api.model
  • import_documents(self)
  • parse_procNFe(self, xml)
    @api.model

New fields (2)
  • imported_products_ids One2many → l10n_br_nfe.import_xml.products
    comodel_name='l10n_br_nfe.import_xml.products' inverse_name='import_xml_id' string='Imported Products'
  • nat_op Char
    string='Natureza da Operação'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • match_or_create_m2o(self, rec_dict, parent_dict, model=None)
    @api.model
    If IpiGuideline not found, break hard, don't create it

New fields (23)
  • cfop_xml Char
    string='XML CFOP'
  • icms_percent Char
    string='Alíquota ICMS'
  • icms_value Char
    string='ICMS Value'
  • import_xml_id Many2one → l10n_br_fiscal.document.import.wizard
    comodel_name='l10n_br_fiscal.document.import.wizard'
  • imported_partner_id Many2one
    related='import_xml_id.partner_id'
  • ipi_percent Char
    string='Alíquota IPI'
  • ipi_value Char
    string='IPI Value'
  • ncm_internal Char
    related='product_id.ncm_id.code' string='Internal NCM Code'
  • ncm_xml Char
    string='XML NCM Code'
  • new_cfop_id Many2one → l10n_br_fiscal.cfop
    comodel_name='l10n_br_fiscal.cfop' string='Change CFOP'
  • price_unit_com Float
    string='Comercial Price Unit'
  • price_unit_trib Float
    string='Fiscal Price Unit'
  • product_code Char
    string='XML Product Code'
  • product_id Many2one → product.product
    comodel_name='product.product' string='Product Internal Reference'
  • product_name Char
  • product_supplier_id Many2one → product.supplierinfo
    comodel_name='product.supplierinfo' string='Product Supplier'
  • quantity_com Float
    string='Comercial Quantity'
  • quantity_trib Float
  • total Float
  • uom_com Char
    string='UOM Comercial'
  • uom_conversion_factor Float
    default=1 string='UOM Conversion Factor'
  • uom_internal Many2one → uom.uom
    comodel_name='uom.uom' help='Internal UoM, equivalent to the comercial one in the document'
  • uom_trib Char
    string='UOM Fiscal'
Public methods (0)

No public methods.

New fields (25)
  • attachment_id Many2one → ir.attachment
    comodel_name='ir.attachment'
  • authorization_datetime Datetime
    index=True string='Authorization Date'
  • authorization_protocol Char
    size=60
  • cancellation_datetime Datetime
    index=True string='Cancellation Date'
  • cancellation_protocol Char
    size=60
  • cnpj_cpf Char
    size=18 string='CNPJ/CPF'
  • company_id Many2one → res.company
    comodel_name='res.company' string='Company'
  • dfe_id Many2one → l10n_br_fiscal.dfe
    comodel_name='l10n_br_fiscal.dfe' string='DF-e'
  • digest_value Char
    size=28
  • document_id Many2one → l10n_br_fiscal.document
    comodel_name='l10n_br_fiscal.document' string='Fiscal Document'
  • document_state Selection
    index=True selection=SITUACAO_NFE
  • document_value Float
    digits=(18, 2) readonly=True string='Document Total Value'
  • emission_datetime Datetime
    default=fields.Datetime.now index=True string='Emission Date'
  • emitter Char
    size=60
  • ie Char
    size=18 string='Inscrição estadual'
  • inclusion_datetime Datetime
    default=fields.Datetime.now index=True string='Inclusion Date'
  • inclusion_mode Char
    size=255
  • key Char
    size=44 string='Access Key'
  • nsu Char
    index=True size=25 string='NSU'
  • number Float
    digits=(18, 0) index=True string='Document Number'
  • operation_type Selection
    selection=OPERATION_TYPE
  • partner_id Many2one → res.partner
    comodel_name='res.partner' string='Supplier (partner)'
  • schema Selection
    selection=SCHEMAS
  • serie Char
    index=True size=3
  • state Selection
    index=True selection=SITUACAO_MANIFESTACAO string='Manifestation State'
Public methods (12)
  • action_ciencia_emissao(self)
  • action_confirmar_operacacao(self)
  • action_download_xml(self)
  • action_negar_operacao(self)
  • action_operacao_desconhecida(self)
  • action_send_event(self, operation, valid_codes, new_state)
  • create_xml_attachment(self, xml)
  • download_attachment(self, attachment_id)
  • import_document(self)
  • import_document_multi(self)
  • name_get(self)
  • validate_event_response(self, result, valid_codes)
    @api.model

New fields (0)

No new fields.

Public methods (2)
  • default_get(self, default_fields)
    @api.model
    The nfe.40.prod mixin (prod XML tag) cannot be injected in the product.product object because the tag includes attributes from the Odoo fiscal document line and because we may have an Nfe with lines decsriptions instead of full blown products. So a part of the mapping is done in the fiscal document line: from Odoo -> XML by using related fields/_compute from XML -> Odoo by overriding the product default_get method
  • match_or_create_m2o(self, rec_dict, parent_dict, model=None)

New fields (2)
  • partner_uom_factor Float
    default=1 string='Partner UOM Factor'
  • partner_uom_id Many2one → uom.uom
    comodel_name='uom.uom' string='Partner Unit of Measure'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • match_or_create_m2o(self, rec_dict, parent_dict, model=None)
    @api.model
    If city not found, break hard, don't create it

New fields (9)
  • nfce_danfe_layout Selection
    readonly=False related='company_id.nfce_danfe_layout' string='NFCe Layout'
  • nfe_authorize_accountant_download_xml Boolean
    readonly=False related='company_id.nfe_authorize_accountant_download_xml' string='Include Accountant Partner data in persons authorized to download NFe XML'
  • nfe_authorize_technical_download_xml Boolean
    readonly=False related='company_id.nfe_authorize_technical_download_xml' string='Include Technical Support Partner data in persons authorized to download NFe XML'
  • nfe_danfe_layout Selection
    readonly=False related='company_id.nfe_danfe_layout' string='NFe Layout'
  • nfe_enable_sync_transmission Boolean
    readonly=False related='company_id.nfe_enable_sync_transmission'
  • nfe_environment Selection
    readonly=False related='company_id.nfe_environment' string='NFe Environment'
  • nfe_transmission Selection
    readonly=False related='company_id.nfe_transmission' string='NFe Transmission'
  • nfe_version Selection
    readonly=False related='company_id.nfe_version' string='NF-e Version'
  • nfe_version_name Char
    config_parameter='l10n_br_nfe.version.name' string='NFe Proc Version'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • match_or_create_m2o(self, rec_dict, parent_dict, model=None)
    @api.model
    If country not found, break hard, don't create it

New fields (0)

No new fields.

Public methods (1)
  • match_or_create_m2o(self, rec_dict, parent_dict, model=None)
    @api.model
    If state not found, break hard, don't create it

New fields (0)

No new fields.

Public methods (1)
  • match_or_create_m2o(self, rec_dict, parent_dict, model=None)
    @api.model
    If uom not found, break hard, don't create it
REPOSITORY
REPOSITORYOCA/l10n-brazil
GIT
GIThttps://github.com/OCA/l10n-brazil.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-brazil/tree/17.0/l10n_br_nfe
VERSION
VERSION 5.0.0
CATEGORY
CATEGORYLocalisation
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion, KMEE
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Akretion, KMEE
COMMITTERS
COMMITTERSRaphaël Valyi, Weblate, OCA-git-bot, oca-ci, CristianoMafraJunior
WEBSITE
WEBSITEhttps://github.com/OCA/l10n-brazil
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:20:03
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/l10n-brazil:
    - l10n_br_fiscal_edi
    - l10n_br_fiscal
    - l10n_br_base
    - l10n_br_fiscal_certificate
    - l10n_br_nfe_spec
    - spec_driven_model
    - l10n_br_fiscal_dfe
OCA/product-attribute:
    - uom_alias
odoo/odoo:
    - product
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - uom
    - base_address_extended
    - contacts
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES brazilfiscalreport
erpbrasil.assinatura
erpbrasil.base
erpbrasil.edoc
erpbrasil.transmissao
nfelib
email-validator
num2words
phonenumbers
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Este módulo permite a emissão de NF-e.

Mais especificamente ele:  
- mapea os campos de NF-e do módulo `l10n_br_nfe_spec` com os campos
  Odoo em especial os campos dos módulos `l10n_br_base` e
  `l10n_br_fiscal`
- usa a logica do módulo `spec_driven_model` para realizar esse
  mapeamento de forma dinâmica, em especial ele usa o sistema de modelos
  com várias camadas, ou `StackedModel`, com os modelos
  `l10n_br_fiscal.document`, `l10n_br_fiscal.document.line` e
  `l10n_br_fiscal.document.related` que tem varios niveis hierarquicos
  de elementos XML que estão sendo denormalizados dentro desses modelos
  Odoo 
- permite a exportação e importação de XML de NF-e
- tem wizards para implementar a comunicação SOAP de NF-e com a SEFAZ
  (Autorização, Cancelamento, Inutilização...)
- implementa a autorização, inutilização e contingência de documentos
  NFC-e

Módulos relacionados:  
- este módulo não depende do módulo `account` do Odoo. A integração com
  o financeiro do módulo `account` é realizada no módulo
  `l10n_br_account_nfe` (tags dup e pag em especial)
- existe também o módulo `l10n_br_delivery_nfe` que faz a integração do
  módulo `l10n_br_nfe` com o módulo `delivery` do Odoo (tags de
  transportadora e de frete em especial)

Code Analysis

Views touched (15)
XML IDNameModelTypeStatus
document_import_wizard_form document_import_wizard.form l10n_br_fiscal.document.import.wizard xpath Inherits l10n_br_fiscal.document_import_wizard_form
l10n_br_nfe_import_xml_products_tree l10n_br_nfe.import_xml.products.tree l10n_br_nfe.import_xml.products tree New
l10n_br_nfe_product_supplierinfo_form_view l10n_br_nfe.product.supplierinfo.form.view product.supplierinfo xpath Inherits product.product_supplierinfo_form_view
l10n_br_nfe_product_supplierinfo_tree_view l10n_br_nfe.product.supplierinfo.tree.view product.supplierinfo xpath Inherits product.product_supplierinfo_tree_view
nfe_40_infadic_form nfe.40.infadic.form nfe.40.infadic form New
nfe_40_vol_form nfe.40.vol.form nfe.40.vol form New
nfe_dfe_form l10n_br_nfe.dfe.form l10n_br_fiscal.dfe xpath Inherits l10n_br_fiscal_dfe.dfe_form
nfe_document_edi_form_inherit l10n_br_nfe_edi.document.form.inherit l10n_br_fiscal.document page Inherits l10n_br_fiscal_edi.document_form
nfe_document_form_inherit l10n_br_nfe.document.form.inherit l10n_br_fiscal.document xpath Inherits l10n_br_fiscal.document_form
nfe_res_company_form nfe.res.company.form res.company xpath Inherits l10n_br_fiscal.fiscal_res_company_form
nfe_res_config_settings_form nfe.res.config.settings.view.form res.config.settings xpath Inherits l10n_br_fiscal.l10n_br_fiscal_res_config_settings_form
report_danfe_nfce report_danfe_nfce ir.ui.view qweb New
view_l10n_br_nfe_mde_filter l10n_br_nfe_mde.select l10n_br_nfe.mde search New
view_l10n_br_nfe_mde_form l10n_br_nfe_mde.form l10n_br_nfe.mde form New
view_l10n_br_nfe_mde_tree l10n_br_nfe_mde.tree l10n_br_nfe.mde tree New
Models touched (18)

New fields (0)

No new fields.

Public methods (1)
  • render_danfe_brazilfiscalreport(self, nfe, nfe_xml)

New fields (0)

No new fields.

Public methods (1)
  • match_or_create_m2o(self, rec_dict, parent_dict, model=None)
    @api.model
    If CEST not found, break hard, don't create it

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (1)
  • mde_ids One2many → l10n_br_nfe.mde
    comodel_name='l10n_br_nfe.mde' inverse_name='dfe_id' string='Manifestações do Destinatário Importadas'
Public methods (3)
  • find_mde_by_key(self, key)
    @api.model
  • import_documents(self)
  • parse_procNFe(self, xml)
    @api.model

New fields (2)
  • imported_products_ids One2many → l10n_br_nfe.import_xml.products
    comodel_name='l10n_br_nfe.import_xml.products' inverse_name='import_xml_id' string='Imported Products'
  • nat_op Char
    string='Natureza da Operação'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • match_or_create_m2o(self, rec_dict, parent_dict, model=None)
    @api.model
    If IpiGuideline not found, break hard, don't create it

New fields (23)
  • cfop_xml Char
    string='XML CFOP'
  • icms_percent Char
    string='Alíquota ICMS'
  • icms_value Char
    string='ICMS Value'
  • import_xml_id Many2one → l10n_br_fiscal.document.import.wizard
    comodel_name='l10n_br_fiscal.document.import.wizard'
  • imported_partner_id Many2one
    related='import_xml_id.partner_id'
  • ipi_percent Char
    string='Alíquota IPI'
  • ipi_value Char
    string='IPI Value'
  • ncm_internal Char
    related='product_id.ncm_id.code' string='Internal NCM Code'
  • ncm_xml Char
    string='XML NCM Code'
  • new_cfop_id Many2one → l10n_br_fiscal.cfop
    comodel_name='l10n_br_fiscal.cfop' string='Change CFOP'
  • price_unit_com Float
    string='Comercial Price Unit'
  • price_unit_trib Float
    string='Fiscal Price Unit'
  • product_code Char
    string='XML Product Code'
  • product_id Many2one → product.product
    comodel_name='product.product' string='Product Internal Reference'
  • product_name Char
  • product_supplier_id Many2one → product.supplierinfo
    comodel_name='product.supplierinfo' string='Product Supplier'
  • quantity_com Float
    string='Comercial Quantity'
  • quantity_trib Float
  • total Float
  • uom_com Char
    string='UOM Comercial'
  • uom_conversion_factor Float
    default=1 string='UOM Conversion Factor'
  • uom_internal Many2one → uom.uom
    comodel_name='uom.uom' help='Internal UoM, equivalent to the comercial one in the document'
  • uom_trib Char
    string='UOM Fiscal'
Public methods (0)

No public methods.

New fields (25)
  • attachment_id Many2one → ir.attachment
    comodel_name='ir.attachment'
  • authorization_datetime Datetime
    index=True string='Authorization Date'
  • authorization_protocol Char
    size=60
  • cancellation_datetime Datetime
    index=True string='Cancellation Date'
  • cancellation_protocol Char
    size=60
  • cnpj_cpf Char
    size=18 string='CNPJ/CPF'
  • company_id Many2one → res.company
    comodel_name='res.company' string='Company'
  • dfe_id Many2one → l10n_br_fiscal.dfe
    comodel_name='l10n_br_fiscal.dfe' string='DF-e'
  • digest_value Char
    size=28
  • document_id Many2one → l10n_br_fiscal.document
    comodel_name='l10n_br_fiscal.document' string='Fiscal Document'
  • document_state Selection
    index=True selection=SITUACAO_NFE
  • document_value Float
    digits=(18, 2) readonly=True string='Document Total Value'
  • emission_datetime Datetime
    default=fields.Datetime.now index=True string='Emission Date'
  • emitter Char
    size=60
  • ie Char
    size=18 string='Inscrição estadual'
  • inclusion_datetime Datetime
    default=fields.Datetime.now index=True string='Inclusion Date'
  • inclusion_mode Char
    size=255
  • key Char
    size=44 string='Access Key'
  • nsu Char
    index=True size=25 string='NSU'
  • number Float
    digits=(18, 0) index=True string='Document Number'
  • operation_type Selection
    selection=OPERATION_TYPE
  • partner_id Many2one → res.partner
    comodel_name='res.partner' string='Supplier (partner)'
  • schema Selection
    selection=SCHEMAS
  • serie Char
    index=True size=3
  • state Selection
    index=True selection=SITUACAO_MANIFESTACAO string='Manifestation State'
Public methods (12)
  • action_ciencia_emissao(self)
  • action_confirmar_operacacao(self)
  • action_download_xml(self)
  • action_negar_operacao(self)
  • action_operacao_desconhecida(self)
  • action_send_event(self, operation, valid_codes, new_state)
  • create_xml_attachment(self, xml)
  • download_attachment(self, attachment_id)
  • import_document(self)
  • import_document_multi(self)
  • name_get(self)
  • validate_event_response(self, result, valid_codes)
    @api.model

New fields (0)

No new fields.

Public methods (2)
  • default_get(self, default_fields)
    @api.model
    The nfe.40.prod mixin (prod XML tag) cannot be injected in the product.product object because the tag includes attributes from the Odoo fiscal document line and because we may have an Nfe with lines decsriptions instead of full blown products. So a part of the mapping is done in the fiscal document line: from Odoo -> XML by using related fields/_compute from XML -> Odoo by overriding the product default_get method
  • match_or_create_m2o(self, rec_dict, parent_dict, model=None)

New fields (2)
  • partner_uom_factor Float
    default=1 string='Partner UOM Factor'
  • partner_uom_id Many2one → uom.uom
    comodel_name='uom.uom' string='Partner Unit of Measure'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • match_or_create_m2o(self, rec_dict, parent_dict, model=None)
    @api.model
    If city not found, break hard, don't create it

New fields (9)
  • nfce_danfe_layout Selection
    readonly=False related='company_id.nfce_danfe_layout' string='NFCe Layout'
  • nfe_authorize_accountant_download_xml Boolean
    readonly=False related='company_id.nfe_authorize_accountant_download_xml' string='Include Accountant Partner data in persons authorized to download NFe XML'
  • nfe_authorize_technical_download_xml Boolean
    readonly=False related='company_id.nfe_authorize_technical_download_xml' string='Include Technical Support Partner data in persons authorized to download NFe XML'
  • nfe_danfe_layout Selection
    readonly=False related='company_id.nfe_danfe_layout' string='NFe Layout'
  • nfe_enable_sync_transmission Boolean
    readonly=False related='company_id.nfe_enable_sync_transmission'
  • nfe_environment Selection
    readonly=False related='company_id.nfe_environment' string='NFe Environment'
  • nfe_transmission Selection
    readonly=False related='company_id.nfe_transmission' string='NFe Transmission'
  • nfe_version Selection
    readonly=False related='company_id.nfe_version' string='NF-e Version'
  • nfe_version_name Char
    config_parameter='l10n_br_nfe.version.name' string='NFe Proc Version'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • match_or_create_m2o(self, rec_dict, parent_dict, model=None)
    @api.model
    If country not found, break hard, don't create it

New fields (0)

No new fields.

Public methods (1)
  • match_or_create_m2o(self, rec_dict, parent_dict, model=None)
    @api.model
    If state not found, break hard, don't create it

New fields (0)

No new fields.

Public methods (1)
  • match_or_create_m2o(self, rec_dict, parent_dict, model=None)
    @api.model
    If uom not found, break hard, don't create it
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_nfe
VERSION
VERSION 12.1.0
CATEGORY
CATEGORYLocalisation
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion, KMEE
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Akretion, KMEE
COMMITTERS
COMMITTERSRaphaël Valyi, Renato Lima, Weblate, OCA-git-bot, oca-ci, Marcel Savegnago, Antonio Neto, Antônio Neto, CristianoMafraJunior, Felipe Motter
WEBSITE
WEBSITEhttps://github.com/OCA/l10n-brazil
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:11:56
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/l10n-brazil:
    - l10n_br_fiscal_edi
    - l10n_br_fiscal
    - l10n_br_base
    - l10n_br_fiscal_certificate
    - l10n_br_nfe_spec
    - spec_driven_model
    - l10n_br_fiscal_dfe
OCA/product-attribute:
    - uom_alias
odoo/odoo:
    - product
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - uom
    - base_address_extended
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES brazilfiscalreport
erpbrasil.assinatura
erpbrasil.base
erpbrasil.edoc
erpbrasil.transmissao
nfelib
email-validator
num2words
phonenumbers
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Este módulo permite a emissão de NF-e.

Mais especificamente ele:  
- mapea os campos de NF-e do módulo `l10n_br_nfe_spec` com os campos
  Odoo em especial os campos dos módulos `l10n_br_base` e
  `l10n_br_fiscal`
- usa a logica do módulo `spec_driven_model` para realizar esse
  mapeamento de forma dinâmica, em especial ele usa o sistema de modelos
  com várias camadas, ou `StackedModel`, com os modelos
  `l10n_br_fiscal.document`, `l10n_br_fiscal.document.line` e
  `l10n_br_fiscal.document.related` que tem varios niveis hierarquicos
  de elementos XML que estão sendo denormalizados dentro desses modelos
  Odoo 
- permite a exportação e importação de XML de NF-e
- tem wizards para implementar a comunicação SOAP de NF-e com a SEFAZ
  (Autorização, Cancelamento, Inutilização...)
- implementa a autorização, inutilização e contingência de documentos
  NFC-e

Módulos relacionados:  
- este módulo não depende do módulo `account` do Odoo. A integração com
  o financeiro do módulo `account` é realizada no módulo
  `l10n_br_account_nfe` (tags dup e pag em especial)
- existe também o módulo `l10n_br_delivery_nfe` que faz a integração do
  módulo `l10n_br_nfe` com o módulo `delivery` do Odoo (tags de
  transportadora e de frete em especial)

Code Analysis

Views touched (15)
XML IDNameModelTypeStatus
document_import_wizard_form document_import_wizard.form l10n_br_fiscal.document.import.wizard xpath Inherits l10n_br_fiscal.document_import_wizard_form
l10n_br_nfe_import_xml_products_tree l10n_br_nfe.import_xml.products.tree l10n_br_nfe.import_xml.products tree New
l10n_br_nfe_product_supplierinfo_form_view l10n_br_nfe.product.supplierinfo.form.view product.supplierinfo xpath Inherits product.product_supplierinfo_form_view
l10n_br_nfe_product_supplierinfo_tree_view l10n_br_nfe.product.supplierinfo.tree.view product.supplierinfo xpath Inherits product.product_supplierinfo_tree_view
nfe_40_infadic_form nfe.40.infadic.form nfe.40.infadic form New
nfe_40_vol_form nfe.40.vol.form nfe.40.vol form New
nfe_dfe_form l10n_br_nfe.dfe.form l10n_br_fiscal.dfe xpath Inherits l10n_br_fiscal_dfe.dfe_form
nfe_document_edi_form_inherit l10n_br_nfe_edi.document.form.inherit l10n_br_fiscal.document page Inherits l10n_br_fiscal_edi.document_form
nfe_document_form_inherit l10n_br_nfe.document.form.inherit l10n_br_fiscal.document xpath Inherits l10n_br_fiscal.document_form
nfe_res_company_form nfe.res.company.form res.company xpath Inherits l10n_br_fiscal.fiscal_res_company_form
nfe_res_config_settings_form nfe.res.config.settings.view.form res.config.settings xpath Inherits l10n_br_fiscal.l10n_br_fiscal_res_config_settings_form
report_danfe_nfce report_danfe_nfce ir.ui.view qweb New
view_l10n_br_nfe_mde_filter l10n_br_nfe_mde.select l10n_br_nfe.mde search New
view_l10n_br_nfe_mde_form l10n_br_nfe_mde.form l10n_br_nfe.mde form New
view_l10n_br_nfe_mde_tree l10n_br_nfe_mde.tree l10n_br_nfe.mde tree New
Models touched (18)

New fields (0)

No new fields.

Public methods (1)
  • render_danfe_brazilfiscalreport(self, nfe, nfe_xml)

New fields (0)

No new fields.

Public methods (1)
  • match_or_create_m2o(self, rec_dict, parent_dict, model=None)
    @api.model
    If CEST not found, break hard, don't create it

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (1)
  • mde_ids One2many → l10n_br_nfe.mde
    comodel_name='l10n_br_nfe.mde' inverse_name='dfe_id' string='Manifestações do Destinatário Importadas'
Public methods (3)
  • find_mde_by_key(self, key)
    @api.model
  • import_documents(self)
  • parse_procNFe(self, xml)
    @api.model

New fields (2)
  • imported_products_ids One2many → l10n_br_nfe.import_xml.products
    comodel_name='l10n_br_nfe.import_xml.products' inverse_name='import_xml_id' string='Imported Products'
  • nat_op Char
    string='Natureza da Operação'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • match_or_create_m2o(self, rec_dict, parent_dict, model=None)
    @api.model
    If IpiGuideline not found, break hard, don't create it

New fields (23)
  • cfop_xml Char
    string='XML CFOP'
  • icms_percent Char
    string='Alíquota ICMS'
  • icms_value Char
    string='ICMS Value'
  • import_xml_id Many2one → l10n_br_fiscal.document.import.wizard
    comodel_name='l10n_br_fiscal.document.import.wizard'
  • imported_partner_id Many2one
    related='import_xml_id.partner_id'
  • ipi_percent Char
    string='Alíquota IPI'
  • ipi_value Char
    string='IPI Value'
  • ncm_internal Char
    related='product_id.ncm_id.code' string='Internal NCM Code'
  • ncm_xml Char
    string='XML NCM Code'
  • new_cfop_id Many2one → l10n_br_fiscal.cfop
    comodel_name='l10n_br_fiscal.cfop' string='Change CFOP'
  • price_unit_com Float
    string='Comercial Price Unit'
  • price_unit_trib Float
    string='Fiscal Price Unit'
  • product_code Char
    string='XML Product Code'
  • product_id Many2one → product.product
    comodel_name='product.product' string='Product Internal Reference'
  • product_name Char
  • product_supplier_id Many2one → product.supplierinfo
    comodel_name='product.supplierinfo' string='Product Supplier'
  • quantity_com Float
    string='Comercial Quantity'
  • quantity_trib Float
  • total Float
  • uom_com Char
    string='UOM Comercial'
  • uom_conversion_factor Float
    default=1 string='UOM Conversion Factor'
  • uom_internal Many2one → uom.uom
    comodel_name='uom.uom' help='Internal UoM, equivalent to the comercial one in the document'
  • uom_trib Char
    string='UOM Fiscal'
Public methods (0)

No public methods.

New fields (25)
  • attachment_id Many2one → ir.attachment
    comodel_name='ir.attachment'
  • authorization_datetime Datetime
    index=True string='Authorization Date'
  • authorization_protocol Char
    size=60
  • cancellation_datetime Datetime
    index=True string='Cancellation Date'
  • cancellation_protocol Char
    size=60
  • cnpj_cpf Char
    size=18 string='CNPJ/CPF'
  • company_id Many2one → res.company
    comodel_name='res.company' string='Company'
  • dfe_id Many2one → l10n_br_fiscal.dfe
    comodel_name='l10n_br_fiscal.dfe' string='DF-e'
  • digest_value Char
    size=28
  • document_id Many2one → l10n_br_fiscal.document
    comodel_name='l10n_br_fiscal.document' string='Fiscal Document'
  • document_state Selection
    index=True selection=SITUACAO_NFE
  • document_value Float
    digits=(18, 2) readonly=True string='Document Total Value'
  • emission_datetime Datetime
    default=fields.Datetime.now index=True string='Emission Date'
  • emitter Char
    size=60
  • ie Char
    size=18 string='Inscrição estadual'
  • inclusion_datetime Datetime
    default=fields.Datetime.now index=True string='Inclusion Date'
  • inclusion_mode Char
    size=255
  • key Char
    size=44 string='Access Key'
  • nsu Char
    index=True size=25 string='NSU'
  • number Float
    digits=(18, 0) index=True string='Document Number'
  • operation_type Selection
    selection=OPERATION_TYPE
  • partner_id Many2one → res.partner
    comodel_name='res.partner' string='Supplier (partner)'
  • schema Selection
    selection=SCHEMAS
  • serie Char
    index=True size=3
  • state Selection
    index=True selection=SITUACAO_MANIFESTACAO string='Manifestation State'
Public methods (12)
  • action_ciencia_emissao(self)
  • action_confirmar_operacacao(self)
  • action_download_xml(self)
  • action_negar_operacao(self)
  • action_operacao_desconhecida(self)
  • action_send_event(self, operation, valid_codes, new_state)
  • create_xml_attachment(self, xml)
  • download_attachment(self, attachment_id)
  • import_document(self)
  • import_document_multi(self)
  • name_get(self)
  • validate_event_response(self, result, valid_codes)
    @api.model

New fields (0)

No new fields.

Public methods (2)
  • default_get(self, default_fields)
    @api.model
    The nfe.40.prod mixin (prod XML tag) cannot be injected in the product.product object because the tag includes attributes from the Odoo fiscal document line and because we may have an Nfe with lines decsriptions instead of full blown products. So a part of the mapping is done in the fiscal document line: from Odoo -> XML by using related fields/_compute from XML -> Odoo by overriding the product default_get method
  • match_or_create_m2o(self, rec_dict, parent_dict, model=None)

New fields (2)
  • partner_uom_factor Float
    default=1 string='Partner UOM Factor'
  • partner_uom_id Many2one → uom.uom
    comodel_name='uom.uom' string='Partner Unit of Measure'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • match_or_create_m2o(self, rec_dict, parent_dict, model=None)
    @api.model
    If city not found, break hard, don't create it

New fields (9)
  • nfce_danfe_layout Selection
    readonly=False related='company_id.nfce_danfe_layout' string='NFCe Layout'
  • nfe_authorize_accountant_download_xml Boolean
    readonly=False related='company_id.nfe_authorize_accountant_download_xml' string='Include Accountant Partner data in persons authorized to download NFe XML'
  • nfe_authorize_technical_download_xml Boolean
    readonly=False related='company_id.nfe_authorize_technical_download_xml' string='Include Technical Support Partner data in persons authorized to download NFe XML'
  • nfe_danfe_layout Selection
    readonly=False related='company_id.nfe_danfe_layout' string='NFe Layout'
  • nfe_enable_sync_transmission Boolean
    readonly=False related='company_id.nfe_enable_sync_transmission'
  • nfe_environment Selection
    readonly=False related='company_id.nfe_environment' string='NFe Environment'
  • nfe_transmission Selection
    readonly=False related='company_id.nfe_transmission' string='NFe Transmission'
  • nfe_version Selection
    readonly=False related='company_id.nfe_version' string='NF-e Version'
  • nfe_version_name Char
    config_parameter='l10n_br_nfe.version.name' string='NFe Proc Version'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • match_or_create_m2o(self, rec_dict, parent_dict, model=None)
    @api.model
    If country not found, break hard, don't create it

New fields (0)

No new fields.

Public methods (1)
  • match_or_create_m2o(self, rec_dict, parent_dict, model=None)
    @api.model
    If state not found, break hard, don't create it

New fields (0)

No new fields.

Public methods (1)
  • match_or_create_m2o(self, rec_dict, parent_dict, model=None)
    @api.model
    If uom not found, break hard, don't create it
REPOSITORY
REPOSITORYOCA/l10n-brazil
GIT
GIThttps://github.com/OCA/l10n-brazil.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-brazil/tree/15.0/l10n_br_nfe
VERSION
VERSION 3.4.0
CATEGORY
CATEGORYLocalisation
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion, KMEE
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Akretion, KMEE
COMMITTERS
COMMITTERSRaphaël Valyi, Weblate, OCA-git-bot, oca-ci, Marcel Savegnago, CristianoMafraJunior
WEBSITE
WEBSITEhttps://github.com/OCA/l10n-brazil
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:46:31
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/l10n-brazil:
    - l10n_br_fiscal_edi
    - l10n_br_fiscal
    - l10n_br_base
    - l10n_br_fiscal_certificate
    - l10n_br_nfe_spec
    - spec_driven_model
    - l10n_br_fiscal_dfe
odoo/odoo:
    - product
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - uom
    - base_address_city
    - base_address_extended
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES brazilfiscalreport
erpbrasil.assinatura
erpbrasil.base
erpbrasil.edoc.pdf
erpbrasil.edoc>=2.5.2
erpbrasil.transmissao>=1.1.0
nfelib<=2.0.7
email-validator
num2words
phonenumbers
nfelib>=2.0.0
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (15)
XML IDNameModelTypeStatus
l10n_br_nfe_import_xml_form l10n_br_nfe.import_xml.form l10n_br_nfe.import_xml xpath Inherits l10n_br_fiscal_edi.l10n_br_fiscal_document_import_wizard_mixin_form
l10n_br_nfe_import_xml_products_tree l10n_br_nfe.import_xml.products.tree l10n_br_nfe.import_xml.products tree New
l10n_br_nfe_product_supplierinfo_form_view l10n_br_nfe.product.supplierinfo.form.view product.supplierinfo xpath Inherits product.product_supplierinfo_form_view
l10n_br_nfe_product_supplierinfo_tree_view l10n_br_nfe.product.supplierinfo.tree.view product.supplierinfo xpath Inherits product.product_supplierinfo_tree_view
nfe_40_infadic_form nfe.40.infadic.form nfe.40.infadic form New
nfe_40_vol_form nfe.40.vol.form nfe.40.vol form New
nfe_dfe_form l10n_br_nfe.dfe.form l10n_br_fiscal.dfe xpath Inherits l10n_br_fiscal_dfe.dfe_form
nfe_document_edi_form_inherit l10n_br_nfe_edi.document.form.inherit l10n_br_fiscal.document page Inherits l10n_br_fiscal_edi.document_form
nfe_document_form_inherit l10n_br_nfe.document.form.inherit l10n_br_fiscal.document xpath Inherits l10n_br_fiscal.document_form
nfe_res_company_form nfe.res.company.form res.company xpath Inherits l10n_br_fiscal.fiscal_res_company_form
nfe_res_config_settings_form nfe.res.config.settings.view.form res.config.settings xpath Inherits l10n_br_fiscal.l10n_br_fiscal_res_config_settings_form
report_danfe_nfce report_danfe_nfce ir.ui.view qweb New
view_l10n_br_nfe_mde_filter l10n_br_nfe_mde.select l10n_br_nfe.mde search New
view_l10n_br_nfe_mde_form l10n_br_nfe_mde.form l10n_br_nfe.mde form New
view_l10n_br_nfe_mde_tree l10n_br_nfe_mde.tree l10n_br_nfe.mde tree New
Models touched (24)

New fields (0)

No new fields.

Public methods (3)
  • render_danfe_brazilfiscalreport(self, nfe, nfe_xml)
  • render_danfe_erpbrasil(self, nfe_xml)
  • temp_xml_autorizacao(self, xml_string)
    TODO: Migrate-me to erpbrasil.edoc.pdf ASAP

New fields (3)
  • company_id Many2one → res.company
    comodel_name='res.company' default=<expr> string='Company'
  • import_status_draft Boolean
    string='Importar NFs com status em rascunho'
  • nfe_export_result One2many → l10n_br_account_product.nfe_export_result
    comodel_name='l10n_br_account_product.nfe_export_result' inverse_name='wizard_id' string='NFe Export Result'
Public methods (0)

No public methods.

New fields (8)
  • export_folder Boolean
    default=_default_export_folder string='Salvar na Pasta de Exportação'
  • file Binary
    readonly=True args: 'Arquivo'
  • file_type Selection
    default=_default_file_type selection=[('xml', 'XML')] string='Tipo do Arquivo'
  • name Char
    size=255 string='Nome'
  • nfe_environment Selection
    default=_default_nfe_environment selection=[('1', 'Produção'), ('2', 'Homologação')] string='Ambiente'
  • nfe_export_result One2many → l10n_br_account_product.nfe_export_invoice_result
    comodel_name='l10n_br_account_product.nfe_export_invoice_result' inverse_name='wizard_id' string='NFe Export Result'
  • sign_xml Boolean
    default=_default_sign_xml string='Assinar XML'
  • state Selection
    default='init' readonly=True selection=[('init', 'init'), ('done', 'done')] string='state'
Public methods (1)
  • nfe_export(self)

New fields (4)
  • document Char
    size=255 string='Documento'
  • message Char
    size=255 string='Mensagem'
  • status Selection
    selection=[('success', 'Sucesso'), ('error', 'Erro')]
  • wizard_id Many2one → l10n_br_account_product.nfe_export_invoice
    comodel_name='l10n_br_account_product.nfe_export_invoice' ondelete='cascade' string='Wizard ID'
Public methods (0)

No public methods.

New fields (1)
  • wizard_id Many2one → l10n_br_account_product.nfe_export
    comodel_name='l10n_br_account_product.nfe_export' ondelete='cascade' string='Wizard ID'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • match_or_create_m2o(self, rec_dict, parent_dict, model=None)
    @api.model
    If CEST not found, break hard, don't create it

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (1)
  • mde_ids One2many → l10n_br_nfe.mde
    comodel_name='l10n_br_nfe.mde' inverse_name='dfe_id' string='Manifestações do Destinatário Importadas'
Public methods (3)
  • find_mde_by_key(self, key)
    @api.model
  • import_documents(self)
  • parse_procNFe(self, xml)
    @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.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • match_or_create_m2o(self, rec_dict, parent_dict, model=None)
    @api.model
    If IpiGuideline not found, break hard, don't create it

New fields (4)
  • imported_products_ids One2many → l10n_br_nfe.import_xml.products
    comodel_name='l10n_br_nfe.import_xml.products' inverse_name='import_xml_id' string='Imported Products'
  • nat_op Char
    string='Natureza da Operação'
  • xml_partner_cpf_cnpj Char
    string='Imported Partner Identification'
  • xml_partner_name Char
    string='Imported Partner Name'
Public methods (0)

No public methods.

New fields (23)
  • cfop_xml Char
    string='XML CFOP'
  • icms_percent Char
    string='Alíquota ICMS'
  • icms_value Char
    string='ICMS Value'
  • import_xml_id Many2one → l10n_br_nfe.import_xml
    comodel_name='l10n_br_nfe.import_xml'
  • imported_partner_id Many2one
    related='import_xml_id.partner_id'
  • ipi_percent Char
    string='Alíquota IPI'
  • ipi_value Char
    string='IPI Value'
  • ncm_internal Char
    related='product_id.ncm_id.code' string='Internal NCM Code'
  • ncm_xml Char
    string='XML NCM Code'
  • new_cfop_id Many2one → l10n_br_fiscal.cfop
    comodel_name='l10n_br_fiscal.cfop' string='Change CFOP'
  • price_unit_com Float
    string='Comercial Price Unit'
  • price_unit_trib Float
    string='Fiscal Price Unit'
  • product_code Char
    string='XML Product Code'
  • product_id Many2one → product.product
    comodel_name='product.product' string='Product Internal Reference'
  • product_name Char
  • product_supplier_id Many2one → product.supplierinfo
    comodel_name='product.supplierinfo' string='Product Supplier'
  • quantity_com Float
    string='Comercial Quantity'
  • quantity_trib Float
  • total Float
  • uom_com Char
    string='UOM Comercial'
  • uom_conversion_factor Float
    default=1 string='UOM Conversion Factor'
  • uom_internal Many2one → uom.uom
    comodel_name='uom.uom' help='Internal UoM, equivalent to the comercial one in the document'
  • uom_trib Char
    string='UOM Fiscal'
Public methods (0)

No public methods.

New fields (25)
  • attachment_id Many2one → ir.attachment
    comodel_name='ir.attachment'
  • authorization_datetime Datetime
    index=True string='Authorization Date'
  • authorization_protocol Char
    size=60
  • cancellation_datetime Datetime
    index=True string='Cancellation Date'
  • cancellation_protocol Char
    size=60
  • cnpj_cpf Char
    size=18 string='CNPJ/CPF'
  • company_id Many2one → res.company
    comodel_name='res.company' string='Company'
  • dfe_id Many2one → l10n_br_fiscal.dfe
    comodel_name='l10n_br_fiscal.dfe' string='DF-e'
  • digest_value Char
    size=28
  • document_id Many2one → l10n_br_fiscal.document
    comodel_name='l10n_br_fiscal.document' string='Fiscal Document'
  • document_state Selection
    index=True selection=SITUACAO_NFE
  • document_value Float
    digits=(18, 2) readonly=True string='Document Total Value'
  • emission_datetime Datetime
    default=fields.Datetime.now index=True string='Emission Date'
  • emitter Char
    size=60
  • ie Char
    size=18 string='Inscrição estadual'
  • inclusion_datetime Datetime
    default=fields.Datetime.now index=True string='Inclusion Date'
  • inclusion_mode Char
    size=255
  • key Char
    size=44 string='Access Key'
  • nsu Char
    index=True size=25 string='NSU'
  • number Float
    digits=(18, 0) index=True string='Document Number'
  • operation_type Selection
    selection=OPERATION_TYPE
  • partner_id Many2one → res.partner
    comodel_name='res.partner' string='Supplier (partner)'
  • schema Selection
    selection=SCHEMAS
  • serie Char
    index=True size=3
  • state Selection
    index=True selection=SITUACAO_MANIFESTACAO string='Manifestation State'
Public methods (12)
  • action_ciencia_emissao(self)
  • action_confirmar_operacacao(self)
  • action_download_xml(self)
  • action_negar_operacao(self)
  • action_operacao_desconhecida(self)
  • action_send_event(self, operation, valid_codes, new_state)
  • create_xml_attachment(self, xml)
  • download_attachment(self, attachment_id)
  • import_document(self)
  • import_document_multi(self)
  • name_get(self)
  • validate_event_response(self, result, valid_codes)
    @api.model

New fields (0)

No new fields.

Public methods (2)
  • default_get(self, default_fields)
    @api.model
    The nfe.40.prod mixin (prod XML tag) cannot be injected in the product.product object because the tag includes attributes from the Odoo fiscal document line and because we may have an Nfe with lines decsriptions instead of full blown products. So a part of the mapping is done in the fiscal document line: from Odoo -> XML by using related fields/_compute from XML -> Odoo by overriding the product default_get method
  • match_or_create_m2o(self, rec_dict, parent_dict, model=None)

New fields (2)
  • partner_uom_factor Float
    default=1 string='Partner UOM Factor'
  • partner_uom_id Many2one → uom.uom
    comodel_name='uom.uom' string='Partner Unit of Measure'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • match_or_create_m2o(self, rec_dict, parent_dict, model=None)
    @api.model
    If city not found, break hard, don't create it

New fields (9)
  • nfce_danfe_layout Selection
    readonly=False related='company_id.nfce_danfe_layout' string='NFCe Layout'
  • nfe_authorize_accountant_download_xml Boolean
    readonly=False related='company_id.nfe_authorize_accountant_download_xml' string='Include Accountant Partner data in persons authorized to download NFe XML'
  • nfe_authorize_technical_download_xml Boolean
    readonly=False related='company_id.nfe_authorize_technical_download_xml' string='Include Technical Support Partner data in persons authorized to download NFe XML'
  • nfe_danfe_layout Selection
    readonly=False related='company_id.nfe_danfe_layout' string='NFe Layout'
  • nfe_enable_sync_transmission Boolean
    readonly=False related='company_id.nfe_enable_sync_transmission'
  • nfe_environment Selection
    readonly=False related='company_id.nfe_environment' string='NFe Environment'
  • nfe_transmission Selection
    readonly=False related='company_id.nfe_transmission' string='NFe Transmission'
  • nfe_version Selection
    readonly=False related='company_id.nfe_version' string='NF-e Version'
  • nfe_version_name Char
    config_parameter='l10n_br_nfe.version.name' string='NFe Proc Version'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • match_or_create_m2o(self, rec_dict, parent_dict, model=None)
    @api.model
    If country not found, break hard, don't create it

New fields (0)

No new fields.

Public methods (1)
  • match_or_create_m2o(self, rec_dict, parent_dict, model=None)
    @api.model
    If state not found, break hard, don't create it

New fields (0)

No new fields.

Public methods (1)
  • match_or_create_m2o(self, rec_dict, parent_dict, model=None)
    @api.model
    If uom not found, break hard, don't create it
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_nfe
VERSION
VERSION 21.0.0
CATEGORY
CATEGORYLocalisation
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion, KMEE
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Akretion, KMEE
COMMITTERS
COMMITTERSRaphaël Valyi, Renato Lima, OCA Transbot, Luis Felipe Miléo, oca-travis, Weblate, OCA-git-bot, Luiz Felipe do Divino, Magno Costa, oca-ci, Marcel Savegnago, Diego Paradeda, Neto, Renan Hiroki Bastos, Ygor Carvalho, Antonio Neto, Antônio Neto, Felipe Zago, CristianoMafraJunior, Felipe, Felipe Motter Pereira, Felipe Motter, Carlos Silveira
WEBSITE
WEBSITEhttps://github.com/OCA/l10n-brazil
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:40:54
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/l10n-brazil:
    - l10n_br_fiscal_edi
    - l10n_br_fiscal
    - l10n_br_base
    - l10n_br_fiscal_certificate
    - l10n_br_nfe_spec
    - spec_driven_model
    - l10n_br_fiscal_dfe
odoo/odoo:
    - product
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - uom
    - base_address_city
    - base_address_extended
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES brazilfiscalreport
erpbrasil.assinatura
erpbrasil.base
erpbrasil.edoc
erpbrasil.edoc.pdf
erpbrasil.transmissao
nfelib
email-validator
num2words
phonenumbers
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (15)
XML IDNameModelTypeStatus
l10n_br_nfe_import_xml_form l10n_br_nfe.import_xml.form l10n_br_nfe.import_xml xpath Inherits l10n_br_fiscal_edi.l10n_br_fiscal_document_import_wizard_mixin_form
l10n_br_nfe_import_xml_products_tree l10n_br_nfe.import_xml.products.tree l10n_br_nfe.import_xml.products tree New
l10n_br_nfe_product_supplierinfo_form_view l10n_br_nfe.product.supplierinfo.form.view product.supplierinfo xpath Inherits product.product_supplierinfo_form_view
l10n_br_nfe_product_supplierinfo_tree_view l10n_br_nfe.product.supplierinfo.tree.view product.supplierinfo xpath Inherits product.product_supplierinfo_tree_view
nfe_40_infadic_form nfe.40.infadic.form nfe.40.infadic form New
nfe_40_vol_form nfe.40.vol.form nfe.40.vol form New
nfe_dfe_form l10n_br_nfe.dfe.form l10n_br_fiscal.dfe xpath Inherits l10n_br_fiscal_dfe.dfe_form
nfe_document_edi_form_inherit l10n_br_nfe_edi.document.form.inherit l10n_br_fiscal.document page Inherits l10n_br_fiscal_edi.document_form
nfe_document_form_inherit l10n_br_nfe.document.form.inherit l10n_br_fiscal.document xpath Inherits l10n_br_fiscal.document_form
nfe_res_company_form nfe.res.company.form res.company xpath Inherits l10n_br_fiscal.fiscal_res_company_form
nfe_res_config_settings_form nfe.res.config.settings.view.form res.config.settings xpath Inherits l10n_br_fiscal.l10n_br_fiscal_res_config_settings_form
report_danfe_nfce report_danfe_nfce ir.ui.view qweb New
view_l10n_br_nfe_mde_filter l10n_br_nfe_mde.select l10n_br_nfe.mde search New
view_l10n_br_nfe_mde_form l10n_br_nfe_mde.form l10n_br_nfe.mde form New
view_l10n_br_nfe_mde_tree l10n_br_nfe_mde.tree l10n_br_nfe.mde tree New
Models touched (24)

New fields (0)

No new fields.

Public methods (3)
  • render_danfe_brazilfiscalreport(self, nfe, nfe_xml)
  • render_danfe_erpbrasil(self, nfe_xml)
  • temp_xml_autorizacao(self, xml_string)
    TODO: Migrate-me to erpbrasil.edoc.pdf ASAP

New fields (3)
  • company_id Many2one → res.company
    comodel_name='res.company' default=<expr> string='Company'
  • import_status_draft Boolean
    string='Importar NFs com status em rascunho'
  • nfe_export_result One2many → l10n_br_account_product.nfe_export_result
    comodel_name='l10n_br_account_product.nfe_export_result' inverse_name='wizard_id' string='NFe Export Result'
Public methods (0)

No public methods.

New fields (8)
  • export_folder Boolean
    default=_default_export_folder string='Salvar na Pasta de Exportação'
  • file Binary
    readonly=True args: 'Arquivo'
  • file_type Selection
    default=_default_file_type selection=[('xml', 'XML')] string='Tipo do Arquivo'
  • name Char
    size=255 string='Nome'
  • nfe_environment Selection
    default=_default_nfe_environment selection=[('1', 'Produção'), ('2', 'Homologação')] string='Ambiente'
  • nfe_export_result One2many → l10n_br_account_product.nfe_export_invoice_result
    comodel_name='l10n_br_account_product.nfe_export_invoice_result' inverse_name='wizard_id' string='NFe Export Result'
  • sign_xml Boolean
    default=_default_sign_xml string='Assinar XML'
  • state Selection
    default='init' readonly=True selection=[('init', 'init'), ('done', 'done')] string='state'
Public methods (1)
  • nfe_export(self)

New fields (4)
  • document Char
    size=255 string='Documento'
  • message Char
    size=255 string='Mensagem'
  • status Selection
    selection=[('success', 'Sucesso'), ('error', 'Erro')]
  • wizard_id Many2one → l10n_br_account_product.nfe_export_invoice
    comodel_name='l10n_br_account_product.nfe_export_invoice' ondelete='cascade' string='Wizard ID'
Public methods (0)

No public methods.

New fields (1)
  • wizard_id Many2one → l10n_br_account_product.nfe_export
    comodel_name='l10n_br_account_product.nfe_export' ondelete='cascade' string='Wizard ID'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • match_or_create_m2o(self, rec_dict, parent_dict, model=None)
    @api.model
    If CEST not found, break hard, don't create it

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (1)
  • mde_ids One2many → l10n_br_nfe.mde
    comodel_name='l10n_br_nfe.mde' inverse_name='dfe_id' string='Manifestações do Destinatário Importadas'
Public methods (3)
  • find_mde_by_key(self, key)
    @api.model
  • import_documents(self)
  • parse_procNFe(self, xml)
    @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.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • match_or_create_m2o(self, rec_dict, parent_dict, model=None)
    @api.model
    If IpiGuideline not found, break hard, don't create it

New fields (4)
  • imported_products_ids One2many → l10n_br_nfe.import_xml.products
    comodel_name='l10n_br_nfe.import_xml.products' inverse_name='import_xml_id' string='Imported Products'
  • nat_op Char
    string='Natureza da Operação'
  • xml_partner_cpf_cnpj Char
    string='Imported Partner Identification'
  • xml_partner_name Char
    string='Imported Partner Name'
Public methods (0)

No public methods.

New fields (23)
  • cfop_xml Char
    string='XML CFOP'
  • icms_percent Char
    string='Alíquota ICMS'
  • icms_value Char
    string='ICMS Value'
  • import_xml_id Many2one → l10n_br_nfe.import_xml
    comodel_name='l10n_br_nfe.import_xml'
  • imported_partner_id Many2one
    related='import_xml_id.partner_id'
  • ipi_percent Char
    string='Alíquota IPI'
  • ipi_value Char
    string='IPI Value'
  • ncm_internal Char
    related='product_id.ncm_id.code' string='Internal NCM Code'
  • ncm_xml Char
    string='XML NCM Code'
  • new_cfop_id Many2one → l10n_br_fiscal.cfop
    comodel_name='l10n_br_fiscal.cfop' string='Change CFOP'
  • price_unit_com Float
    string='Comercial Price Unit'
  • price_unit_trib Float
    string='Fiscal Price Unit'
  • product_code Char
    string='XML Product Code'
  • product_id Many2one → product.product
    comodel_name='product.product' string='Product Internal Reference'
  • product_name Char
  • product_supplier_id Many2one → product.supplierinfo
    comodel_name='product.supplierinfo' string='Product Supplier'
  • quantity_com Float
    string='Comercial Quantity'
  • quantity_trib Float
  • total Float
  • uom_com Char
    string='UOM Comercial'
  • uom_conversion_factor Float
    default=1 string='UOM Conversion Factor'
  • uom_internal Many2one → uom.uom
    comodel_name='uom.uom' help='Internal UoM, equivalent to the comercial one in the document'
  • uom_trib Char
    string='UOM Fiscal'
Public methods (0)

No public methods.

New fields (25)
  • attachment_id Many2one → ir.attachment
    comodel_name='ir.attachment'
  • authorization_datetime Datetime
    index=True string='Authorization Date'
  • authorization_protocol Char
    size=60
  • cancellation_datetime Datetime
    index=True string='Cancellation Date'
  • cancellation_protocol Char
    size=60
  • cnpj_cpf Char
    size=18 string='CNPJ/CPF'
  • company_id Many2one → res.company
    comodel_name='res.company' string='Company'
  • dfe_id Many2one → l10n_br_fiscal.dfe
    comodel_name='l10n_br_fiscal.dfe' string='DF-e'
  • digest_value Char
    size=28
  • document_id Many2one → l10n_br_fiscal.document
    comodel_name='l10n_br_fiscal.document' string='Fiscal Document'
  • document_state Selection
    index=True selection=SITUACAO_NFE
  • document_value Float
    digits=(18, 2) readonly=True string='Document Total Value'
  • emission_datetime Datetime
    default=fields.Datetime.now index=True string='Emission Date'
  • emitter Char
    size=60
  • ie Char
    size=18 string='Inscrição estadual'
  • inclusion_datetime Datetime
    default=fields.Datetime.now index=True string='Inclusion Date'
  • inclusion_mode Char
    size=255
  • key Char
    size=44 string='Access Key'
  • nsu Char
    index=True size=25 string='NSU'
  • number Float
    digits=(18, 0) index=True string='Document Number'
  • operation_type Selection
    selection=OPERATION_TYPE
  • partner_id Many2one → res.partner
    comodel_name='res.partner' string='Supplier (partner)'
  • schema Selection
    selection=SCHEMAS
  • serie Char
    index=True size=3
  • state Selection
    index=True selection=SITUACAO_MANIFESTACAO string='Manifestation State'
Public methods (12)
  • action_ciencia_emissao(self)
  • action_confirmar_operacacao(self)
  • action_download_xml(self)
  • action_negar_operacao(self)
  • action_operacao_desconhecida(self)
  • action_send_event(self, operation, valid_codes, new_state)
  • create_xml_attachment(self, xml)
  • download_attachment(self, attachment_id)
  • import_document(self)
  • import_document_multi(self)
  • name_get(self)
  • validate_event_response(self, result, valid_codes)
    @api.model

New fields (0)

No new fields.

Public methods (2)
  • default_get(self, default_fields)
    @api.model
    The nfe.40.prod mixin (prod XML tag) cannot be injected in the product.product object because the tag includes attributes from the Odoo fiscal document line and because we may have an Nfe with lines decsriptions instead of full blown products. So a part of the mapping is done in the fiscal document line: from Odoo -> XML by using related fields/_compute from XML -> Odoo by overriding the product default_get method
  • match_or_create_m2o(self, rec_dict, parent_dict, model=None)

New fields (2)
  • partner_uom_factor Float
    default=1 string='Partner UOM Factor'
  • partner_uom_id Many2one → uom.uom
    comodel_name='uom.uom' string='Partner Unit of Measure'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • match_or_create_m2o(self, rec_dict, parent_dict, model=None)
    @api.model
    If city not found, break hard, don't create it

New fields (9)
  • nfce_danfe_layout Selection
    readonly=False related='company_id.nfce_danfe_layout' string='NFCe Layout'
  • nfe_authorize_accountant_download_xml Boolean
    readonly=False related='company_id.nfe_authorize_accountant_download_xml' string='Include Accountant Partner data in persons authorized to download NFe XML'
  • nfe_authorize_technical_download_xml Boolean
    readonly=False related='company_id.nfe_authorize_technical_download_xml' string='Include Technical Support Partner data in persons authorized to download NFe XML'
  • nfe_danfe_layout Selection
    readonly=False related='company_id.nfe_danfe_layout' string='NFe Layout'
  • nfe_enable_sync_transmission Boolean
    readonly=False related='company_id.nfe_enable_sync_transmission'
  • nfe_environment Selection
    readonly=False related='company_id.nfe_environment' string='NFe Environment'
  • nfe_transmission Selection
    readonly=False related='company_id.nfe_transmission' string='NFe Transmission'
  • nfe_version Selection
    readonly=False related='company_id.nfe_version' string='NF-e Version'
  • nfe_version_name Char
    config_parameter='l10n_br_nfe.version.name' string='NFe Proc Version'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • match_or_create_m2o(self, rec_dict, parent_dict, model=None)
    @api.model
    If country not found, break hard, don't create it

New fields (0)

No new fields.

Public methods (1)
  • match_or_create_m2o(self, rec_dict, parent_dict, model=None)
    @api.model
    If state not found, break hard, don't create it

New fields (0)

No new fields.

Public methods (1)
  • match_or_create_m2o(self, rec_dict, parent_dict, model=None)
    @api.model
    If uom not found, break hard, don't create it
REPOSITORY
REPOSITORYOCA/l10n-brazil
GIT
GIThttps://github.com/OCA/l10n-brazil.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-brazil/tree/12.0/l10n_br_nfe
VERSION
VERSION 13.4.0
CATEGORY
CATEGORYLocalisation
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion, KMEE
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Akretion, KMEE
COMMITTERS
COMMITTERSRaphaël Valyi, Renato Lima, GitHub, Luis Felipe Mileo, oca-travis, OCA-git-bot, Magno Costa, Gabriel Cardoso de Faria, oca-ci, Marcel Savegnago, Diego Paradeda, Luis Malta, Neto, Renan Hiroki Bastos, Odoo Dev Jung, Ygor Carvalho, Antonio Neto
WEBSITE
WEBSITEhttps://github.com/OCA/l10n-brazil
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:29:15
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/l10n-brazil:
    - l10n_br_fiscal
    - l10n_br_base
    - l10n_br_nfe_spec
    - spec_driven_model
odoo/odoo:
    - uom
    - base
    - decimal_precision
    - product
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - base_address_city
    - base_address_extended
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES erpbrasil.assinatura
erpbrasil.base
erpbrasil.edoc
erpbrasil.edoc.pdf
erpbrasil.transmissao
nfelib
xmldiff
num2words
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (7)
XML IDNameModelTypeStatus
l10n_br_nfe_import_xml_form l10n_br_nfe.import_xml.form l10n_br_nfe.import_xml form New
nfe_40_infadic_form nfe.40.infadic.form nfe.40.infadic form New
nfe_40_vol_form nfe.40.vol.form nfe.40.vol form New
nfe_document_form_inherit l10n_br_nfe.document.form.inherit l10n_br_fiscal.document page Inherits l10n_br_fiscal.document_form
nfe_document_line_form l10n_br_nfe.document.line.form l10n_br_fiscal.document.line field Inherits l10n_br_fiscal.document_line_form
nfe_res_company_form nfe.res.company.form res.company xpath Inherits l10n_br_fiscal.fiscal_res_company_form
nfe_res_config_settings_form nfe.res.config.settings.view.form res.config.settings xpath Inherits l10n_br_fiscal.l10n_br_fiscal_res_config_settings_form
Models touched (19)

New fields (3)
  • company_id Many2one → res.company
    comodel_name='res.company' default=<expr> string='Company'
  • import_status_draft Boolean
    string='Importar NFs com status em rascunho'
  • nfe_export_result One2many → l10n_br_account_product.nfe_export_result
    comodel_name='l10n_br_account_product.nfe_export_result' inverse_name='wizard_id' string='NFe Export Result'
Public methods (0)

No public methods.

New fields (8)
  • export_folder Boolean
    default=_default_export_folder string='Salvar na Pasta de Exportação'
  • file Binary
    readonly=True args: 'Arquivo'
  • file_type Selection
    default=_default_file_type selection=[('xml', 'XML')] string='Tipo do Arquivo'
  • name Char
    size=255 string='Nome'
  • nfe_environment Selection
    default=_default_nfe_environment selection=[('1', 'Produção'), ('2', 'Homologação')] string='Ambiente'
  • nfe_export_result One2many → l10n_br_account_product.nfe_export_invoice_result
    comodel_name='l10n_br_account_product.nfe_export_invoice_result' inverse_name='wizard_id' string='NFe Export Result'
  • sign_xml Boolean
    default=_default_sign_xml string='Assinar XML'
  • state Selection
    default='init' readonly=True selection=[('init', 'init'), ('done', 'done')] string='state'
Public methods (1)
  • nfe_export(self)

New fields (4)
  • document Char
    size=255 string='Documento'
  • message Char
    size=255 string='Mensagem'
  • status Selection
    selection=[('success', 'Sucesso'), ('error', 'Erro')] string='Status'
  • wizard_id Many2one → l10n_br_account_product.nfe_export_invoice
    comodel_name='l10n_br_account_product.nfe_export_invoice' ondelete='cascade' string='Wizard ID'
Public methods (0)

No public methods.

New fields (1)
  • wizard_id Many2one → l10n_br_account_product.nfe_export
    comodel_name='l10n_br_account_product.nfe_export' ondelete='cascade' string='Wizard ID'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • match_or_create_m2o(self, rec_dict, parent_dict, model=None)
    @api.model
    If CEST not found, break hard, don't create it

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • match_or_create_m2o(self, rec_dict, parent_dict, model=None)
    @api.model
    If IpiGuideline not found, break hard, don't create it

New fields (7)
  • company_id Many2one → res.company
    comodel_name='res.company' default=<expr> string='Company'
  • fiscal_operation_type Selection
    selection=FISCAL_IN_OUT_ALL string='Fiscal Operation Type'
  • imported_products_ids One2many → l10n_br_nfe.import_xml.products
    comodel_name='l10n_br_nfe.import_xml.products' inverse_name='import_xml_id' string='Imported Products'
  • importing_type Selection
    required=True selection=IMPORTING_TYPES string='Importing Type'
  • nfe_xml Binary
    string='NFe XML to Import'
  • partner_cpf_cnpj Char
    string='Partner Documentation'
  • partner_name Char
    string='Partner Name'
Public methods (1)
  • import_nfe_xml(self)
    @api.multi

New fields (9)
  • import_xml_id Many2one → l10n_br_nfe.import_xml
    comodel_name='l10n_br_nfe.import_xml'
  • price_unit_com Float
    string='Comercial Price Unit'
  • price_unit_trib Float
    string='Fiscal Price Unit'
  • product_name Char
    string='Product Name'
  • quantity_com Float
    string='Comercial Quantity'
  • quantity_trib Float
    string='Fiscal Quantity'
  • total Float
    string='Total'
  • uom_com Char
    string='UOM Comercial'
  • uom_trib Char
    string='UOM Fiscal'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (2)
  • default_get(self, default_fields)
    @api.model
    The nfe.40.prod mixin (prod XML tag) cannot be injected in the product.product object because the tag includes attributes from the Odoo fiscal document line and because we may have an Nfe with lines decsriptions instead of full blown products. So a part of the mapping is done in the fiscal document line: from Odoo -> XML by using related fields/_compute from XML -> Odoo by overriding the product default_get method
  • match_or_create_m2o(self, rec_dict, parent_dict, model=None)

New fields (0)

No new fields.

Public methods (1)
  • match_or_create_m2o(self, rec_dict, parent_dict, model=None)
    @api.model
    If city not found, break hard, don't create it

New fields (8)
  • nfce_danfe_layout Selection
    readonly=False related='company_id.nfce_danfe_layout' selection=NFE_DANFE_LAYOUTS string='NFCe Layout'
  • nfe_authorize_accountant_download_xml Boolean
    readonly=False related='company_id.nfe_authorize_accountant_download_xml' string='Include Accountant Partner data in persons authorized to download NFe XML'
  • nfe_authorize_technical_download_xml Boolean
    readonly=False related='company_id.nfe_authorize_technical_download_xml' string='Include Technical Support Partner data in persons authorized to download NFe XML'
  • nfe_danfe_layout Selection
    readonly=False related='company_id.nfe_danfe_layout' selection=NFE_DANFE_LAYOUTS string='NFe Layout'
  • nfe_environment Selection
    readonly=False related='company_id.nfe_environment' selection=NFE_ENVIRONMENTS string='NFe Environment'
  • nfe_transmission Selection
    readonly=False related='company_id.nfe_transmission' selection=NFE_TRANSMISSIONS string='NFe Transmission'
  • nfe_version Selection
    readonly=False related='company_id.nfe_version' selection=NFE_VERSIONS string='NF-e Version'
  • nfe_version_name Char
    config_parameter='l10n_br_nfe.version.name' string='NFe Proc Version'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • match_or_create_m2o(self, rec_dict, parent_dict, model=None)
    @api.model
    If country not found, break hard, don't create it

New fields (0)

No new fields.

Public methods (1)
  • match_or_create_m2o(self, rec_dict, parent_dict, model=None)
    @api.model
    If state not found, break hard, don't create it

New fields (0)

No new fields.

Public methods (1)
  • match_or_create_m2o(self, rec_dict, parent_dict, model=None)
    @api.model
    If uom not found, break hard, don't create it