TIP: You can type at any time to perform a new search.
NF-e
l10n_br_nfe · OCA/l10n-brazil
- Repository
- OCA/l10n-brazil · module folder · Try on Runboat
- Module version
- Category
- Localisation
- Folder size
- 0.93 MB
- License
- AGPL-3
- Application
- No
- Auto-installable
- No
- Website
- https://github.com/OCA/l10n-brazil
- Last tracking update
- 2026-08-14 23:15:54
- Authors
- Akretion, Odoo Community Association (OCA), KMEE
- Maintainers
- Akretion, Odoo Community Association (OCA), KMEE
- Committers
- Raphaël Valyi, Renato Lima, Weblate, OCA-git-bot, oca-ci, Magno Costa, CristianoMafraJunior
- Odoo dependencies
- Python dependencies
- brazilfiscalreport, erpbrasil.assinatura, erpbrasil.base, erpbrasil.edoc, erpbrasil.transmissao, nfelib, email-validator, num2words, phonenumbers
- System dependencies
- None
- Required by
- l10n_br_ie_search
- 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 (18)
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
document_import_wizard_form |
document_import_wizard.form | l10n_br_fiscal.document.import.wizard | form | 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 | form | Inherits product.product_supplierinfo_form_view |
l10n_br_nfe_product_supplierinfo_tree_view |
l10n_br_nfe.product.supplierinfo.tree.view | product.supplierinfo | tree | 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 | form | Inherits l10n_br_fiscal_dfe.dfe_form |
nfe_di_form |
nfe.40.di.form | nfe.40.di | form | New |
nfe_di_tree |
nfe.40.di.tree | nfe.40.di | list | New |
nfe_document_edi_form_inherit |
l10n_br_nfe_edi.document.form.inherit | l10n_br_fiscal.document | form | Inherits l10n_br_fiscal_edi.document_form |
nfe_document_form_inherit |
l10n_br_nfe.document.form.inherit | l10n_br_fiscal.document | form | Inherits l10n_br_fiscal.document_form |
nfe_document_line_form |
l10n_br_nfe.document.line.form | l10n_br_fiscal.document.line | form | Inherits l10n_br_fiscal.document_line_form |
nfe_res_company_form |
nfe.res.company.form | res.company | form | Inherits l10n_br_fiscal.fiscal_res_company_form |
nfe_res_config_settings_form |
nfe.res.config.settings.view.form | res.config.settings | form | 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 |
HTTP endpoints (0)
No HTTP endpoints found for this module.
Models touched (19)
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.modelIf 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_idsOne2many → l10n_br_nfe.mdecomodel_name='l10n_br_nfe.mde'inverse_name='dfe_id'string='Manifestações do Destinatário Importadas'
-
find_mde_by_key(self, key)@api.model -
import_documents(self) -
parse_procNFe(self, xml)@api.model
New fields (2)
-
imported_products_idsOne2many → l10n_br_nfe.import_xml.productscomodel_name='l10n_br_nfe.import_xml.products'inverse_name='import_xml_id'string='Imported Products' -
nat_opCharstring='Natureza da Operação'
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.modelIf IpiGuideline not found, break hard, don't create it
New fields (23)
-
cfop_xmlCharstring='XML CFOP' -
icms_percentCharstring='Alíquota ICMS' -
icms_valueCharstring='ICMS Value' -
import_xml_idMany2one → l10n_br_fiscal.document.import.wizardcomodel_name='l10n_br_fiscal.document.import.wizard' -
imported_partner_idMany2onerelated='import_xml_id.partner_id' -
ipi_percentCharstring='Alíquota IPI' -
ipi_valueCharstring='IPI Value' -
ncm_internalCharrelated='product_id.ncm_id.code'string='Internal NCM Code' -
ncm_xmlCharstring='XML NCM Code' -
new_cfop_idMany2one → l10n_br_fiscal.cfopcomodel_name='l10n_br_fiscal.cfop'string='Change CFOP' -
price_unit_comFloatstring='Comercial Price Unit' -
price_unit_tribFloatstring='Fiscal Price Unit' -
product_codeCharstring='XML Product Code' -
product_idMany2one → product.productcomodel_name='product.product'string='Product Internal Reference' -
product_nameChar -
product_supplier_idMany2one → product.supplierinfocomodel_name='product.supplierinfo'string='Product Supplier' -
quantity_comFloatstring='Comercial Quantity' -
quantity_tribFloat -
totalFloat -
uom_comCharstring='UOM Comercial' -
uom_conversion_factorFloatdefault=1string='UOM Conversion Factor' -
uom_internalMany2one → uom.uomcomodel_name='uom.uom'help='Internal UoM, equivalent to the comercial one in the document' -
uom_tribCharstring='UOM Fiscal'
No public methods.
New fields (25)
-
attachment_idMany2one → ir.attachmentcomodel_name='ir.attachment' -
authorization_datetimeDatetimeindex=Truestring='Authorization Date' -
authorization_protocolCharsize=60 -
cancellation_datetimeDatetimeindex=Truestring='Cancellation Date' -
cancellation_protocolCharsize=60 -
cnpj_cpfCharsize=18string='CNPJ/CPF' -
company_idMany2one → res.companycomodel_name='res.company'string='Company' -
dfe_idMany2one → l10n_br_fiscal.dfecomodel_name='l10n_br_fiscal.dfe'string='DF-e' -
digest_valueCharsize=28 -
document_idMany2one → l10n_br_fiscal.documentcomodel_name='l10n_br_fiscal.document'string='Fiscal Document' -
document_stateSelectionindex=Trueselection=SITUACAO_NFE -
document_valueFloatdigits=(18, 2)readonly=Truestring='Document Total Value' -
emission_datetimeDatetimedefault=fields.Datetime.nowindex=Truestring='Emission Date' -
emitterCharsize=60 -
ieCharsize=18string='Inscrição estadual' -
inclusion_datetimeDatetimedefault=fields.Datetime.nowindex=Truestring='Inclusion Date' -
inclusion_modeCharsize=255 -
keyCharsize=44string='Access Key' -
nsuCharindex=Truesize=25string='NSU' -
numberFloatdigits=(18, 0)index=Truestring='Document Number' -
operation_typeSelectionselection=OPERATION_TYPE -
partner_idMany2one → res.partnercomodel_name='res.partner'string='Supplier (partner)' -
schemaSelectionselection=SCHEMAS -
serieCharindex=Truesize=3 -
stateSelectionindex=Trueselection=SITUACAO_MANIFESTACAOstring='Manifestation State'
-
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) -
validate_event_response(self, result, valid_codes)@api.model
New fields (7)
-
nfe40_CNPJCharrelated='partner_acquirer_id.nfe40_CNPJ' -
nfe40_UFDesembCharrelated='state_clearance_id.code'string='Customs Clearance Code' -
nfe40_UFTerceiroCharrelated='partner_acquirer_id.state_id.code' -
nfe40_tpIntermedioSelectionselection=TPINTERMEDIO_DI -
nfe40_tpViaTranspSelectionselection=TPVIATRANSP_DI -
partner_acquirer_idMany2one → res.partnercomodel_name='res.partner'string='Partner Acquirer' -
state_clearance_idMany2one → res.country.statecomodel_name='res.country.state'domain=[('country_id.code', '=', 'BR')]string='State Customs Clearance'
No public methods.
New fields (0)
No new fields.
Public methods (2)-
default_get(self, default_fields)@api.modelThe 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_factorFloatdefault=1string='Partner UOM Factor' -
partner_uom_idMany2one → uom.uomcomodel_name='uom.uom'string='Partner Unit of Measure'
No public methods.
New fields (0)
No new fields.
Public methods (1)-
match_or_create_m2o(self, rec_dict, parent_dict, model=None)@api.modelIf city not found, break hard, don't create it
New fields (9)
-
nfce_danfe_layoutSelectionreadonly=Falserelated='company_id.nfce_danfe_layout'string='NFCe Layout' -
nfe_authorize_accountant_download_xmlBooleanreadonly=Falserelated='company_id.nfe_authorize_accountant_download_xml'string='Include Accountant Partner data in persons authorized to download NFe XML' -
nfe_authorize_technical_download_xmlBooleanreadonly=Falserelated='company_id.nfe_authorize_technical_download_xml'string='Include Technical Support Partner data in persons authorized to download NFe XML' -
nfe_danfe_layoutSelectionreadonly=Falserelated='company_id.nfe_danfe_layout'string='NFe Layout' -
nfe_enable_sync_transmissionBooleanreadonly=Falserelated='company_id.nfe_enable_sync_transmission' -
nfe_environmentSelectionreadonly=Falserelated='company_id.nfe_environment'string='NFe Environment' -
nfe_transmissionSelectionreadonly=Falserelated='company_id.nfe_transmission'string='NFe Transmission' -
nfe_versionSelectionreadonly=Falserelated='company_id.nfe_version'string='NF-e Version' -
nfe_version_nameCharconfig_parameter='l10n_br_nfe.version.name'string='NFe Proc Version'
No public methods.
New fields (0)
No new fields.
Public methods (1)-
match_or_create_m2o(self, rec_dict, parent_dict, model=None)@api.modelIf 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.modelIf 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.modelIf uom not found, break hard, don't create it
Loading…
Loading…
Loading…
Loading…
Loading…