From e477498b09d8158483dc7cf334fda93b5ce64e1b Mon Sep 17 00:00:00 2001 From: Trinh Ngoc Hung Date: Sat, 20 Dec 2025 13:07:19 +0700 Subject: [PATCH] [FIX] account: translate invoice_label tax --- .../scripts/account/17.0.1.2/end-migration.py | 14 +++++++++++++ .../scripts/account/17.0.1.2/pre-migration.py | 20 ++++++++++++------- 2 files changed, 27 insertions(+), 7 deletions(-) diff --git a/openupgrade_scripts/scripts/account/17.0.1.2/end-migration.py b/openupgrade_scripts/scripts/account/17.0.1.2/end-migration.py index d575a418110..02562614d8b 100644 --- a/openupgrade_scripts/scripts/account/17.0.1.2/end-migration.py +++ b/openupgrade_scripts/scripts/account/17.0.1.2/end-migration.py @@ -43,6 +43,20 @@ def _assign_journal_xmlids(env): ) +def _get_tax_invoice_description(old, lang_code, record): + return record.with_context(lang=lang_code)["description"] + + +def _translate_tax_invoice_label(env): + records = env["account.tax"].search([("invoice_label", "=", False)]) + openupgrade.update_field_multilang( + records, + "invoice_label", + lambda old, a, k: _get_tax_invoice_description(old, a, k), + ) + + @openupgrade.migrate() def migrate(env, version): _assign_journal_xmlids(env) + _translate_tax_invoice_label(env) diff --git a/openupgrade_scripts/scripts/account/17.0.1.2/pre-migration.py b/openupgrade_scripts/scripts/account/17.0.1.2/pre-migration.py index 61fe358e63e..a9285718e3f 100644 --- a/openupgrade_scripts/scripts/account/17.0.1.2/pre-migration.py +++ b/openupgrade_scripts/scripts/account/17.0.1.2/pre-migration.py @@ -73,15 +73,21 @@ def _convert_account_tax_description(env): openupgrade.add_columns( env, [(False, "invoice_label", "char", None, "account_tax")] ) - openupgrade.logged_query( - env.cr, - """UPDATE account_tax - SET invoice_label = description - WHERE description IS NOT NULL;""", - ) - convert_column_translatable(env.cr, "account_tax", "description", "jsonb") convert_column_translatable(env.cr, "account_tax", "invoice_label", "jsonb") + env.cr.execute( + """ + SELECT name FROM ir_model_fields + WHERE model = 'account.tax' + AND name = 'description' + AND translate = TRUE + """, + ) + description_translated_field = [field[0] for field in env.cr.fetchall()] + + if not description_translated_field: + convert_column_translatable(env.cr, "account_tax", "description", "jsonb") + def _am_create_delivery_date_column(env): """