diff --git a/l10n_br_nfe/models/document_line.py b/l10n_br_nfe/models/document_line.py index 78d4a89dd029..8c8d24a94c19 100644 --- a/l10n_br_nfe/models/document_line.py +++ b/l10n_br_nfe/models/document_line.py @@ -1,7 +1,7 @@ # Copyright 2019 Akretion (Raphaƫl Valyi ) # Copyright 2020 KMEE INFORMATICA LTDA # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). - +import json import sys from enum import Enum @@ -1057,6 +1057,8 @@ def _prepare_import_dict( values = super()._prepare_import_dict( values, model, parent_dict, defaults_model ) + values["line_import_json"] = json.dumps(values) + if not values.get("name"): values["name"] = values.get("nfe40_xProd") values["default_code"] = values.get("nfe40_cProd") diff --git a/l10n_br_nfe/wizards/__init__.py b/l10n_br_nfe/wizards/__init__.py index 48f8f3d1013a..a0e07a7c0869 100644 --- a/l10n_br_nfe/wizards/__init__.py +++ b/l10n_br_nfe/wizards/__init__.py @@ -1,3 +1,4 @@ from . import l10n_br_account_nfe_export_invoice from . import l10n_br_account_nfe_export from . import document_import_wizard +from . import document_line_import_wizard diff --git a/l10n_br_nfe/wizards/document_line_import_wizard.py b/l10n_br_nfe/wizards/document_line_import_wizard.py new file mode 100644 index 000000000000..7bda3e85a7e2 --- /dev/null +++ b/l10n_br_nfe/wizards/document_line_import_wizard.py @@ -0,0 +1,34 @@ +# Copyright 2025 KMEE +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from odoo import models + +from odoo.addons.l10n_br_fiscal.constants.fiscal import ( + MODELO_FISCAL_NFCE, + MODELO_FISCAL_NFE, +) + + +class L10n_br_fiscalDocumentLineImportWizard(models.TransientModel): + _inherit = "l10n_br_fiscal.document.line.import.wizard" + + def _prepare_onchange_document_line_id(self): + res = super()._prepare_onchange_document_line_id() + if self.document_line_id.document_id.document_type in [ + MODELO_FISCAL_NFE, + MODELO_FISCAL_NFCE, + ]: + if self.document_line_id.line_import_json: + line_json = self.document_line_id.line_import_json + vals = { + "document_code": line_json.get("nfe40_cProd"), + "document_ean": line_json.get("nfe40_cEAN"), + "document_name": line_json.get("nfe40_xProd"), + "document_qty": line_json.get("nfe40_qCom"), + "document_uom": line_json.get("nfe40_uCom"), + "document_uom_trib": line_json.get("nfe40_uTrib"), + # "document_ncm_id": document_line.ncm_id.id, + # "document_cfop_id": document_line.cfop_id.id, + } + self.update(vals) + return res