From 6dce0867681a6f8222276d6069bb57417ccbb7de Mon Sep 17 00:00:00 2001 From: Carlos Lopez Date: Thu, 14 Aug 2025 11:15:12 -0500 Subject: [PATCH 01/71] [OU-ADD] pos_sale : Nothing to do --- docsource/modules160-170.rst | 2 +- .../scripts/pos_sale/17.0.1.1/upgrade_analysis_work.txt | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 openupgrade_scripts/scripts/pos_sale/17.0.1.1/upgrade_analysis_work.txt diff --git a/docsource/modules160-170.rst b/docsource/modules160-170.rst index da2e37e882c9..de6dccb86915 100644 --- a/docsource/modules160-170.rst +++ b/docsource/modules160-170.rst @@ -808,7 +808,7 @@ Module coverage 16.0 -> 17.0 +---------------------------------------------------+----------------------+-------------------------------------------------+ | pos_restaurant_stripe | | | +---------------------------------------------------+----------------------+-------------------------------------------------+ -| pos_sale | |No DB layout changes. | +| pos_sale | Nothing to do |No DB layout changes. | +---------------------------------------------------+----------------------+-------------------------------------------------+ | pos_sale_loyalty | | | +---------------------------------------------------+----------------------+-------------------------------------------------+ diff --git a/openupgrade_scripts/scripts/pos_sale/17.0.1.1/upgrade_analysis_work.txt b/openupgrade_scripts/scripts/pos_sale/17.0.1.1/upgrade_analysis_work.txt new file mode 100644 index 000000000000..c73da2154d11 --- /dev/null +++ b/openupgrade_scripts/scripts/pos_sale/17.0.1.1/upgrade_analysis_work.txt @@ -0,0 +1,5 @@ +---Models in module 'pos_sale'--- +---Fields in module 'pos_sale'--- +---XML records in module 'pos_sale'--- +---nothing has changed in this module-- +# NOTHING TO DO From 72005976c26eef3607c63a0d8f1d72b750babdf1 Mon Sep 17 00:00:00 2001 From: "Pedro M. Baeza" Date: Fri, 15 Aug 2025 13:43:30 +0200 Subject: [PATCH 02/71] [OU-FIX] l10n_de_mis_*_report: Rename XML-IDs pre-merge Both l10n_de_mis_skr03_report and l10n_de_mis_skr04_report have the same XML-IDs for their data records, so merging them into l10n_de_mis_report generates duplicated XML-IDs if both are installed, crashing the system. But only if you have one of them installed, all the previous MIS definition records will be tried to be removed, giving the corresponding error if they have been used. Let's fix it doing a previous renaming of all its XML-IDs. TT41859 --- .../scripts/base/17.0.1.3/pre-migration.py | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/openupgrade_scripts/scripts/base/17.0.1.3/pre-migration.py b/openupgrade_scripts/scripts/base/17.0.1.3/pre-migration.py index 068dbdde2914..de50c53ca7c0 100644 --- a/openupgrade_scripts/scripts/base/17.0.1.3/pre-migration.py +++ b/openupgrade_scripts/scripts/base/17.0.1.3/pre-migration.py @@ -45,6 +45,32 @@ } +def _handle_l10n_de_mis_reports_xmlids(cr): + """Before executing the merged modules, we need to rename some XML-IDs with the same + name of l10n_de_skr03_mis_reports/l10n_de_skr04_mis_reports into + l10n_de_mis_reports. + """ + if not openupgrade.is_module_installed( + cr, "l10n_de_skr03_mis_reports" + ) and not openupgrade.is_module_installed(cr, "l10n_de_skr04_mis_reports"): + return + _xmlids_renames = [] + # fmt: off + bs_names = ["anlagevermoegen", "immaterielle", "schutzrechte", "konzessionen", "firmenwert", "geleistetet_anzahlungen", "total_immaterielle", "grundstueck", "maschinen", "ausstattung", "anlagen_im_bau", "total_sachanlagen", "anteile", "ausleihungen", "beteiligungen", "ausleihungen_beteiligung", "wertpapiere_av", "sonstige_ausleihungen", "total_finanzanlagen", "total_anlagevermoegen", "umlaufvermoegen", "i_vorraete", "roh_hilfs_betriebsstoffe", "unfertige_leistungen", "fertige_erzeugnisse", "anzahlungen", "total_vorraete", "ii_forderungen", "forderungen_ll", "forderungen_unternehmen", "forderungen_beteiligungen", "total_forderungen", "iii_wertpapiere", "wertpapiere_uv_anteile", "wertpapiere_uv_sonstige", "total_wertpapiere_uv", "liquide_mittel", "total_umlaufvermoegen", "rechnungsabgrenzung_aktiva", "aktive_latente_steuern", "fehlbetrag", "aktivseite", "eigenkapital", "gezeichnetes_kapital", "variables_kapital", "gewinnruecklage", "ruecklage_gesetzlich", "ruecklage_eigene_anteile", "ruecklage_satzung", "ruecklage_andere_gewinne", "gewinn_des_jahres", "total_gewinnruecklage", "gewinn_verlustvortrag", "jahresgewinn_verlust", "sopo_mit_ruecklage", "total_eigenkapital", "rueckstellungen", "rueckstellungen_pensionen", "rueckstellungen_steuern", "rueckstellungen_sonstige", "total_rueckstellungen", "verbindlichkeiten", "verbindlichkeiten_anleihen", "verbindlichkeiten_bank", "verbindlichkeiten_ll", "verbindlichkeiten_wechsel", "verbindlichkeiten_sonstige", "total_verbindlichkeiten", "rechnungsabgrenzung_passiva", "passive_latente_steuern", "passivseite"] # noqa: E501 + pl_names = ["betriebliche_erloese", "umsatzerloese", "bestandsveraenderungen", "eigenleistungen", "sonstige_ertraege", "total_erloese", "betriebsaufwand", "materialaufwand", "materialaufwand_a", "materialaufwand_b", "personalaufwand", "personalaufwand_a", "personalaufwand_b", "abschreibungen", "abschreibungen_a", "abschreibungen_b", "sonstige_aufwendungen", "total_aufwendungen", "total_betriebsergebnis", "ertraege_beteiligungen", "ertraege_wertpapiere", "zinsertraege", "zinsaufwendungen", "ergebnis_gewoehnliche", "ao_ergebnis", "ao_ergebnis_erloese", "ao_ergebnis_aufwendungen", "total_ao_ergebnis", "steuern", "steuern_ertrag", "sonstige_steuern", "gewinn_verlust", "gewinnvortrag_vj", "entnahme_kapitalruecklage", "entnahme_gewinnruecklage", "einstellung_ruecklage", "bilanzgewinn"] # noqa: E501 + # fmt: on + for coa in ("skr03", "skr04"): + for report in ("mis_report_bs", "mis_report_pl"): + for name in [""] + bs_names + pl_names: + _xmlids_renames.append( + ( + f"l10n_de_{coa}_mis_reports.{report}{'_' if name else ''}{name}", # noqa: E501 + f"l10n_de_mis_reports.{report}_{coa}{'_' if name else ''}{name}", # noqa: E501 + ) + ) + openupgrade.rename_xmlids(cr, _xmlids_renames) + + def _fill_ir_server_object_lines_into_action_server(cr): openupgrade.logged_query( cr, @@ -236,6 +262,7 @@ def migrate(cr, version): "when migrating your database." ) openupgrade.update_module_names(cr, renamed_modules.items()) + _handle_l10n_de_mis_reports_xmlids(cr) openupgrade.update_module_names(cr, merged_modules.items(), merge_modules=True) openupgrade.clean_transient_models(cr) openupgrade.rename_xmlids(cr, _xmlids_renames) From b3dca53d22959886e24f788893b162d110b14804 Mon Sep 17 00:00:00 2001 From: Carlos Lopez Date: Thu, 14 Aug 2025 14:19:14 -0500 Subject: [PATCH 03/71] [OU-ADD] pos_restaurant: Migration to 17.0 --- docsource/modules160-170.rst | 2 +- .../pos_restaurant/17.0.1.0/post-migration.py | 19 ++++++++ .../17.0.1.0/upgrade_analysis_work.txt | 47 +++++++++++++++++++ 3 files changed, 67 insertions(+), 1 deletion(-) create mode 100644 openupgrade_scripts/scripts/pos_restaurant/17.0.1.0/post-migration.py create mode 100644 openupgrade_scripts/scripts/pos_restaurant/17.0.1.0/upgrade_analysis_work.txt diff --git a/docsource/modules160-170.rst b/docsource/modules160-170.rst index da2e37e882c9..b8bdadf8b4d1 100644 --- a/docsource/modules160-170.rst +++ b/docsource/modules160-170.rst @@ -800,7 +800,7 @@ Module coverage 16.0 -> 17.0 +---------------------------------------------------+----------------------+-------------------------------------------------+ | |new| pos_razorpay | | | +---------------------------------------------------+----------------------+-------------------------------------------------+ -| pos_restaurant | | | +| pos_restaurant | Done | | +---------------------------------------------------+----------------------+-------------------------------------------------+ | pos_restaurant_adyen | |No DB layout changes. | +---------------------------------------------------+----------------------+-------------------------------------------------+ diff --git a/openupgrade_scripts/scripts/pos_restaurant/17.0.1.0/post-migration.py b/openupgrade_scripts/scripts/pos_restaurant/17.0.1.0/post-migration.py new file mode 100644 index 000000000000..821d59ef7f4b --- /dev/null +++ b/openupgrade_scripts/scripts/pos_restaurant/17.0.1.0/post-migration.py @@ -0,0 +1,19 @@ +# Copyright 2025 Tecnativa - Carlos Lopez +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). +from openupgradelib import openupgrade + + +def _restaurant_floor_convert_field_m2o_to_m2m(env): + # Convert m2o to m2m in 'restaurant.floor' + openupgrade.m2o_to_x2m( + env.cr, + env["restaurant.floor"], + "restaurant_floor", + "pos_config_ids", + "pos_config_id", + ) + + +@openupgrade.migrate() +def migrate(env, version): + _restaurant_floor_convert_field_m2o_to_m2m(env) diff --git a/openupgrade_scripts/scripts/pos_restaurant/17.0.1.0/upgrade_analysis_work.txt b/openupgrade_scripts/scripts/pos_restaurant/17.0.1.0/upgrade_analysis_work.txt new file mode 100644 index 000000000000..d9bd16bb6ada --- /dev/null +++ b/openupgrade_scripts/scripts/pos_restaurant/17.0.1.0/upgrade_analysis_work.txt @@ -0,0 +1,47 @@ +---Models in module 'pos_restaurant'--- +obsolete model restaurant.printer (renamed to pos.printer in module point_of_sale) +# NOTHING TO DO: handled in the point_of_sale module migration scripts + +---Fields in module 'pos_restaurant'--- +pos_restaurant / pos.config / is_table_management (boolean) : DEL +# NOTHING TO DO: Odoo dropped these fields in https://github.com/odoo/odoo/commit/e3ad1eb058db6329b7f6b8e4880e3610eee22dd9 + +pos_restaurant / pos.config / module_pos_restaurant_appointment (boolean): NEW +# NOTHING TO DO: new feature used to install the pos_restaurant_appointment module in Enterprise + +pos_restaurant / pos.order / multiprint_resume (char) : DEL +pos_restaurant / pos.order.line / mp_skip (boolean) : DEL +# NOTHING TO DO: handled in the point_of_sale module migration scripts +# https://github.com/OCA/OpenUpgrade/blob/03bd8c9c4be30e276162ebf861cd6a5f4527df41/openupgrade_scripts/scripts/point_of_sale/17.0.1.0.1/pre-migration.py#L13 + +pos_restaurant / pos.config / is_order_printer (boolean) : module is now 'point_of_sale' ('pos_restaurant') +pos_restaurant / pos.config / printer_ids (many2many) : module is now 'point_of_sale' ('pos_restaurant') +pos_restaurant / pos.config / printer_ids (many2many) : relation is now 'pos.printer' ('restaurant.printer') [nothing to do] +pos_restaurant / pos.order.line / uuid (char) : module is now 'point_of_sale' ('pos_restaurant') +# NOTHING TO DO: moved to the point_of_sale module + +pos_restaurant / pos.config / floor_ids (one2many) : table is now 'pos_config_restaurant_floor_rel' ('False') +pos_restaurant / pos.config / floor_ids (one2many) : type is now 'many2many' ('one2many') +pos_restaurant / restaurant.floor / pos_config_id (many2one) : DEL relation: pos.config +pos_restaurant / restaurant.floor / pos_config_ids (many2many) : NEW relation: pos.config +# DONE: post-migration: convert m2o to m2m + +pos_restaurant / restaurant.printer / _order : module is now 'point_of_sale' ('pos_restaurant') +pos_restaurant / restaurant.printer / display_name (char) : module is now 'point_of_sale' ('pos_restaurant') +pos_restaurant / restaurant.printer / name (char) : module is now 'point_of_sale' ('pos_restaurant') +pos_restaurant / restaurant.printer / printer_type (selection) : module is now 'point_of_sale' ('pos_restaurant') +pos_restaurant / restaurant.printer / product_categories_ids (many2many): module is now 'point_of_sale' ('pos_restaurant') +pos_restaurant / restaurant.printer / proxy_ip (char) : module is now 'point_of_sale' ('pos_restaurant') +# NOTHING TO DO: handled in the point_of_sale module migration scripts + +---XML records in module 'pos_restaurant'--- +DEL ir.actions.act_window: pos_restaurant.action_restaurant_printer_form +DEL ir.model.access: pos_restaurant.access_restaurant_printer +DEL ir.model.access: pos_restaurant.access_restaurant_printer_manager +DEL ir.ui.menu: pos_restaurant.menu_restaurant_printer_all +DEL ir.ui.view: pos_restaurant.view_restaurant_printer +DEL ir.ui.view: pos_restaurant.view_restaurant_printer_form +# NOTHING TO DO: moved to the point_of_sale module + +NEW pos.config: pos_restaurant.pos_config_main_restaurant (noupdate) +# NOTHING TO DO: new feature From c62af4514faeeceaab8ad92b09339614f5c22b74 Mon Sep 17 00:00:00 2001 From: Carlos Lopez Date: Mon, 18 Aug 2025 07:11:10 -0500 Subject: [PATCH 04/71] [OU-IMP] point_of_sale: correct implementation of the last_order_preparation_change field According to the analysis, this initially looked like a new feature, but upon closer examination it is actually a field rename from multiprint_resume in the pos_restaurant model. This commit renames the field to preserve existing values. --- .../scripts/point_of_sale/17.0.1.0.1/pre-migration.py | 1 + .../scripts/point_of_sale/17.0.1.0.1/upgrade_analysis_work.txt | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/openupgrade_scripts/scripts/point_of_sale/17.0.1.0.1/pre-migration.py b/openupgrade_scripts/scripts/point_of_sale/17.0.1.0.1/pre-migration.py index 0dd3706eacfb..fe8885e770ab 100644 --- a/openupgrade_scripts/scripts/point_of_sale/17.0.1.0.1/pre-migration.py +++ b/openupgrade_scripts/scripts/point_of_sale/17.0.1.0.1/pre-migration.py @@ -10,6 +10,7 @@ ] _field_renames = [ + ("pos.order", "pos_order", "multiprint_resume", "last_order_preparation_change"), ("pos.order.line", "pos_order_line", "mp_skip", "skip_change"), ] diff --git a/openupgrade_scripts/scripts/point_of_sale/17.0.1.0.1/upgrade_analysis_work.txt b/openupgrade_scripts/scripts/point_of_sale/17.0.1.0.1/upgrade_analysis_work.txt index 4a46670f26d7..ef4a5f2b5b31 100644 --- a/openupgrade_scripts/scripts/point_of_sale/17.0.1.0.1/upgrade_analysis_work.txt +++ b/openupgrade_scripts/scripts/point_of_sale/17.0.1.0.1/upgrade_analysis_work.txt @@ -45,7 +45,7 @@ point_of_sale / pos.order / config_id (many2one) : is no # DONE: pre-migration: it's a related field, let's fill it session_id.config_id point_of_sale / pos.order / last_order_preparation_change (char): NEW -# NOTHING TO DO: new feature +# DONE: pre-migration: renamed from multiprint_resume (pos_restaurant) point_of_sale / pos.order / shipping_date (date) : NEW point_of_sale / pos.order / to_ship (boolean) : DEL From cb5682d0c512c3b591bcc8447c5309e9f1399e24 Mon Sep 17 00:00:00 2001 From: Carlos Lopez Date: Mon, 18 Aug 2025 07:36:57 -0500 Subject: [PATCH 05/71] [OU-ADD] pos_epson_printer : Nothing to do --- docsource/modules160-170.rst | 2 +- .../pos_epson_printer/17.0.1.0/upgrade_analysis_work.txt | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) create mode 100644 openupgrade_scripts/scripts/pos_epson_printer/17.0.1.0/upgrade_analysis_work.txt diff --git a/docsource/modules160-170.rst b/docsource/modules160-170.rst index de6dccb86915..257c8a3a0268 100644 --- a/docsource/modules160-170.rst +++ b/docsource/modules160-170.rst @@ -776,7 +776,7 @@ Module coverage 16.0 -> 17.0 +---------------------------------------------------+----------------------+-------------------------------------------------+ | pos_discount | |No DB layout changes. | +---------------------------------------------------+----------------------+-------------------------------------------------+ -| pos_epson_printer | | | +| pos_epson_printer | Nothing to do | | +---------------------------------------------------+----------------------+-------------------------------------------------+ | |del| pos_epson_printer_restaurant | |Merged into point_of_sale. | +---------------------------------------------------+----------------------+-------------------------------------------------+ diff --git a/openupgrade_scripts/scripts/pos_epson_printer/17.0.1.0/upgrade_analysis_work.txt b/openupgrade_scripts/scripts/pos_epson_printer/17.0.1.0/upgrade_analysis_work.txt new file mode 100644 index 000000000000..90af0c27c3dc --- /dev/null +++ b/openupgrade_scripts/scripts/pos_epson_printer/17.0.1.0/upgrade_analysis_work.txt @@ -0,0 +1,9 @@ +---Models in module 'pos_epson_printer'--- +---Fields in module 'pos_epson_printer'--- +pos_epson_printer / restaurant.printer / epson_printer_ip (char) : previously in module pos_epson_printer_restaurant +pos_epson_printer / restaurant.printer / printer_type (False) : previously in module pos_epson_printer_restaurant +# NOTHING TO DO: fields moved from pos_epson_printer_restaurant module, which depends on pos_epson_printer, so these fields are available + +---XML records in module 'pos_epson_printer'--- +NEW ir.ui.view: pos_epson_printer.view_pos_printer_form +# NOTHING TO DO: Handled by ORM From 4f44919f41337b1b807190dfc1507fe43907c4e2 Mon Sep 17 00:00:00 2001 From: Carlos Lopez Date: Mon, 18 Aug 2025 07:42:02 -0500 Subject: [PATCH 06/71] [OU-ADD] pos_hr_restaurant : Nothing to do --- docsource/modules160-170.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docsource/modules160-170.rst b/docsource/modules160-170.rst index de6dccb86915..e8e838a5b53b 100644 --- a/docsource/modules160-170.rst +++ b/docsource/modules160-170.rst @@ -782,7 +782,7 @@ Module coverage 16.0 -> 17.0 +---------------------------------------------------+----------------------+-------------------------------------------------+ | pos_hr | Done | | +---------------------------------------------------+----------------------+-------------------------------------------------+ -| pos_hr_restaurant | | | +| pos_hr_restaurant | Nothing to do | | +---------------------------------------------------+----------------------+-------------------------------------------------+ | pos_loyalty | | | +---------------------------------------------------+----------------------+-------------------------------------------------+ From e07a76d0ea3c8e046cb5fbc12a770e1ce8e48da7 Mon Sep 17 00:00:00 2001 From: Carlos Lopez Date: Fri, 22 Aug 2025 14:34:10 -0500 Subject: [PATCH 07/71] [OU-ADD] sale_stock_margin: Nothing to do --- docsource/modules160-170.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docsource/modules160-170.rst b/docsource/modules160-170.rst index 18c9c811f8d9..7386bb36f702 100644 --- a/docsource/modules160-170.rst +++ b/docsource/modules160-170.rst @@ -932,7 +932,7 @@ Module coverage 16.0 -> 17.0 +---------------------------------------------------+----------------------+-------------------------------------------------+ | sale_stock | Done | | +---------------------------------------------------+----------------------+-------------------------------------------------+ -| sale_stock_margin | | | +| sale_stock_margin | Nothing to do | | +---------------------------------------------------+----------------------+-------------------------------------------------+ | sale_timesheet | Done | | +---------------------------------------------------+----------------------+-------------------------------------------------+ From 5c9f9ab6c8cda16217b42451ee076233bef67e27 Mon Sep 17 00:00:00 2001 From: Carlos Lopez Date: Fri, 22 Aug 2025 14:38:23 -0500 Subject: [PATCH 08/71] [OU-ADD] pos_mrp: Nothing to do --- docsource/modules160-170.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docsource/modules160-170.rst b/docsource/modules160-170.rst index 18c9c811f8d9..8a754f97f1a1 100644 --- a/docsource/modules160-170.rst +++ b/docsource/modules160-170.rst @@ -790,7 +790,7 @@ Module coverage 16.0 -> 17.0 +---------------------------------------------------+----------------------+-------------------------------------------------+ | pos_mercury | | | +---------------------------------------------------+----------------------+-------------------------------------------------+ -| pos_mrp | | | +| pos_mrp | Nothing to do | | +---------------------------------------------------+----------------------+-------------------------------------------------+ | |new| pos_online_payment | | | +---------------------------------------------------+----------------------+-------------------------------------------------+ From 67c9b6c2900d1c954f301309028bc4280df1ff0f Mon Sep 17 00:00:00 2001 From: Carlos Lopez Date: Fri, 22 Aug 2025 14:41:53 -0500 Subject: [PATCH 09/71] [OU-ADD] website_crm_livechat: Nothing to do --- docsource/modules160-170.rst | 2 +- .../website_crm_livechat/17.0.1.0/upgrade_analysis_work.txt | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 openupgrade_scripts/scripts/website_crm_livechat/17.0.1.0/upgrade_analysis_work.txt diff --git a/docsource/modules160-170.rst b/docsource/modules160-170.rst index 18c9c811f8d9..dd097a408b94 100644 --- a/docsource/modules160-170.rst +++ b/docsource/modules160-170.rst @@ -1030,7 +1030,7 @@ Module coverage 16.0 -> 17.0 +---------------------------------------------------+----------------------+-------------------------------------------------+ | website_crm_iap_reveal | |No DB layout changes. | +---------------------------------------------------+----------------------+-------------------------------------------------+ -| website_crm_livechat | |No DB layout changes. | +| website_crm_livechat | Nothing to do |No DB layout changes. | +---------------------------------------------------+----------------------+-------------------------------------------------+ | website_crm_partner_assign | | | +---------------------------------------------------+----------------------+-------------------------------------------------+ diff --git a/openupgrade_scripts/scripts/website_crm_livechat/17.0.1.0/upgrade_analysis_work.txt b/openupgrade_scripts/scripts/website_crm_livechat/17.0.1.0/upgrade_analysis_work.txt new file mode 100644 index 000000000000..7654b02e4516 --- /dev/null +++ b/openupgrade_scripts/scripts/website_crm_livechat/17.0.1.0/upgrade_analysis_work.txt @@ -0,0 +1,5 @@ +---Models in module 'website_crm_livechat'--- +---Fields in module 'website_crm_livechat'--- +---XML records in module 'website_crm_livechat'--- +---nothing has changed in this module-- +# NOTHING TO DO: From 9a5e4395a2b9ee387e68020816850a04689da1a3 Mon Sep 17 00:00:00 2001 From: Carlos Lopez Date: Fri, 22 Aug 2025 15:12:59 -0500 Subject: [PATCH 10/71] [OU-ADD] website_sale_picking: Migration scripts --- docsource/modules160-170.rst | 2 +- .../17.0.1.0/post-migration.py | 15 +++++++++++++++ .../17.0.1.0/pre-migration.py | 19 +++++++++++++++++++ .../17.0.1.0/upgrade_analysis_work.txt | 12 ++++++++++++ 4 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 openupgrade_scripts/scripts/website_sale_picking/17.0.1.0/post-migration.py create mode 100644 openupgrade_scripts/scripts/website_sale_picking/17.0.1.0/pre-migration.py create mode 100644 openupgrade_scripts/scripts/website_sale_picking/17.0.1.0/upgrade_analysis_work.txt diff --git a/docsource/modules160-170.rst b/docsource/modules160-170.rst index 18c9c811f8d9..5cfc85da2b75 100644 --- a/docsource/modules160-170.rst +++ b/docsource/modules160-170.rst @@ -1126,7 +1126,7 @@ Module coverage 16.0 -> 17.0 +---------------------------------------------------+----------------------+-------------------------------------------------+ | |new| website_sale_mondialrelay | |Renamed from website_sale_delivery_mondialrelay. | +---------------------------------------------------+----------------------+-------------------------------------------------+ -| website_sale_picking | | | +| website_sale_picking | Done | | +---------------------------------------------------+----------------------+-------------------------------------------------+ | website_sale_product_configurator | | | +---------------------------------------------------+----------------------+-------------------------------------------------+ diff --git a/openupgrade_scripts/scripts/website_sale_picking/17.0.1.0/post-migration.py b/openupgrade_scripts/scripts/website_sale_picking/17.0.1.0/post-migration.py new file mode 100644 index 000000000000..5b9c49c4067c --- /dev/null +++ b/openupgrade_scripts/scripts/website_sale_picking/17.0.1.0/post-migration.py @@ -0,0 +1,15 @@ +# Copyright 2025 Tecnativa - Carlos Lopez +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +from openupgradelib import openupgrade + + +@openupgrade.migrate() +def migrate(env, version): + openupgrade.load_data(env, "website_sale_picking", "17.0.1.0/noupdate_changes.xml") + openupgrade.delete_record_translations( + env.cr, + "website_sale_picking", + ["onsite_delivery_product"], + ["description"], + ) diff --git a/openupgrade_scripts/scripts/website_sale_picking/17.0.1.0/pre-migration.py b/openupgrade_scripts/scripts/website_sale_picking/17.0.1.0/pre-migration.py new file mode 100644 index 000000000000..5085441a3fea --- /dev/null +++ b/openupgrade_scripts/scripts/website_sale_picking/17.0.1.0/pre-migration.py @@ -0,0 +1,19 @@ +# Copyright 2025 Tecnativa - Carlos Lopez +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). +from openupgradelib import openupgrade + +_noupdate_xmlids = ["payment_provider_onsite"] +_xmlid_renames = [ + ( + "website_sale_picking.checkout_payment", + "website_sale_picking.payment_method_form", + ) +] + + +@openupgrade.migrate() +def migrate(env, version): + openupgrade.set_xml_ids_noupdate_value( + env, "website_sale_picking", _noupdate_xmlids, False + ) + openupgrade.rename_xmlids(env.cr, _xmlid_renames) diff --git a/openupgrade_scripts/scripts/website_sale_picking/17.0.1.0/upgrade_analysis_work.txt b/openupgrade_scripts/scripts/website_sale_picking/17.0.1.0/upgrade_analysis_work.txt new file mode 100644 index 000000000000..9e2591f93fd3 --- /dev/null +++ b/openupgrade_scripts/scripts/website_sale_picking/17.0.1.0/upgrade_analysis_work.txt @@ -0,0 +1,12 @@ +---Models in module 'website_sale_picking'--- +---Fields in module 'website_sale_picking'--- +---XML records in module 'website_sale_picking'--- +NEW ir.ui.view: website_sale_picking.payment_method_form +DEL ir.ui.view: website_sale_picking.checkout_payment +# DONE: pre-migration: XML-ID renamed + +NEW payment.method: website_sale_picking.payment_method_pay_on_site +# NOTHING TO DO: New record used to set in payment.provider payment_provider_onsite + +payment.provider: website_sale_picking.payment_provider_onsite (noupdate switched) +# DONE: pre-migration: Switch noupdate flag From 1beb458ffac39daab260c125cfaccd48ad35e4fc Mon Sep 17 00:00:00 2001 From: Enric Tobella Date: Mon, 25 Aug 2025 11:10:30 +0200 Subject: [PATCH 11/71] [OU-ADD] web_editor: Move custom assets --- .../web_editor/17.0.1.0/post-migration.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 openupgrade_scripts/scripts/web_editor/17.0.1.0/post-migration.py diff --git a/openupgrade_scripts/scripts/web_editor/17.0.1.0/post-migration.py b/openupgrade_scripts/scripts/web_editor/17.0.1.0/post-migration.py new file mode 100644 index 000000000000..c540f18e7362 --- /dev/null +++ b/openupgrade_scripts/scripts/web_editor/17.0.1.0/post-migration.py @@ -0,0 +1,17 @@ +from openupgradelib import openupgrade + + +def convert_assets(env): + for asset in env["ir.asset"].search([("path", "like", ".custom.")]): + path_1, extra = asset.path.split(".custom.", 1) + bundle_1, bundle_2, path_2 = extra.split(".", 2) + path = f"{path_1}.{path_2}" + bundle = f"{bundle_1}.{bundle_2}" + new_path = f"/_custom/{bundle}{path}" + env["ir.attachment"].search([("url", "=", asset.path)]).write({"url": new_path}) + asset.write({"path": new_path}) + + +@openupgrade.migrate() +def migrate(env, version): + convert_assets(env) From 61d508b1470a2635745dfe34395c4dfb6a353f5f Mon Sep 17 00:00:00 2001 From: Carlos Lopez Date: Fri, 22 Aug 2025 14:20:23 -0500 Subject: [PATCH 12/71] [OU-ADD] pos_epson_printer_restaurant: Migration to 17.0 --- docsource/modules160-170.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docsource/modules160-170.rst b/docsource/modules160-170.rst index e6a7eb9f14bd..fb95c505d24f 100644 --- a/docsource/modules160-170.rst +++ b/docsource/modules160-170.rst @@ -778,7 +778,7 @@ Module coverage 16.0 -> 17.0 +---------------------------------------------------+----------------------+-------------------------------------------------+ | pos_epson_printer | Nothing to do | | +---------------------------------------------------+----------------------+-------------------------------------------------+ -| |del| pos_epson_printer_restaurant | |Merged into point_of_sale. | +| |del| pos_epson_printer_restaurant | Done |Merged into point_of_sale. | +---------------------------------------------------+----------------------+-------------------------------------------------+ | pos_hr | Done | | +---------------------------------------------------+----------------------+-------------------------------------------------+ From 83994879ad222c02836df6e41f7f2798fcbf9b3c Mon Sep 17 00:00:00 2001 From: "Pedro M. Baeza" Date: Tue, 26 Aug 2025 21:37:42 +0200 Subject: [PATCH 13/71] [OU-ADD] spreadsheet_dashboard_im_livechat: Nothing to do Even no analysis file. TT54500 --- docsource/modules160-170.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docsource/modules160-170.rst b/docsource/modules160-170.rst index fb95c505d24f..edad62c98766 100644 --- a/docsource/modules160-170.rst +++ b/docsource/modules160-170.rst @@ -962,7 +962,7 @@ Module coverage 16.0 -> 17.0 +---------------------------------------------------+----------------------+-------------------------------------------------+ | spreadsheet_dashboard_hr_timesheet | Nothing to do | | +---------------------------------------------------+----------------------+-------------------------------------------------+ -| spreadsheet_dashboard_im_livechat | | | +| spreadsheet_dashboard_im_livechat | Nothing to do | | +---------------------------------------------------+----------------------+-------------------------------------------------+ | spreadsheet_dashboard_pos_hr | | | +---------------------------------------------------+----------------------+-------------------------------------------------+ From b097c5d6a42562a89be28032667eb699b2aa0fbb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Mart=C3=ADnez?= Date: Wed, 27 Aug 2025 14:54:06 +0200 Subject: [PATCH 14/71] [OU-FIX] account: Use migrate_translations_to_jsonb to migrate translations from the field Related to https://github.com/OCA/OpenUpgrade/commit/3d5ebac00ea9aa9d2126b7988af2c21fbd943d64 Similar to https://github.com/OCA/OpenUpgrade/blob/4af8572c7f3e313773db558ba382b5ffd19a157c/openupgrade_scripts/scripts/base/16.0.1.3/end-migration.py#L39 TT57778 --- .../scripts/account/17.0.1.2/pre-migration.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) 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 2452377e794e..9b911e3b15f5 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 @@ -1,8 +1,6 @@ # Copyright 2024 Viindoo Technology Joint Stock Company (Viindoo) # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -from openupgradelib import openupgrade - -from odoo.tools.sql import convert_column_translatable +from openupgradelib import openupgrade, openupgrade_160 _fields_renames = [ ( @@ -73,7 +71,12 @@ def _convert_account_tax_description(env): openupgrade.rename_columns( env.cr, {"account_tax": [("description", "invoice_label")]} ) - convert_column_translatable(env.cr, "account_tax", "invoice_label", "jsonb") + # Deliberately call migrate_translations_to_jsonb instead of + # convert_column_translatable to support the case you have translate=True on + # the field in v16 (l10n_multilang compatibility). + openupgrade_160.migrate_translations_to_jsonb( + env, [("account_tax", "invoice_label")] + ) def _am_create_delivery_date_column(env): From 03827eeaf2778363784109635c97c5240f9a8c4e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Mart=C3=ADnez?= Date: Tue, 9 Sep 2025 08:55:03 +0200 Subject: [PATCH 15/71] [OU-FIX] account: Avoid the error when executing the migrate_translations_to_jsonb method Related to https://github.com/OCA/OpenUpgrade/pull/5355 Fixes https://github.com/OCA/OpenUpgrade/issues/5368 --- .../scripts/account/17.0.1.2/post-migration.py | 12 +++++++++++- .../scripts/account/17.0.1.2/pre-migration.py | 8 +------- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/openupgrade_scripts/scripts/account/17.0.1.2/post-migration.py b/openupgrade_scripts/scripts/account/17.0.1.2/post-migration.py index ecdabb6d28cc..88a8d5770a93 100644 --- a/openupgrade_scripts/scripts/account/17.0.1.2/post-migration.py +++ b/openupgrade_scripts/scripts/account/17.0.1.2/post-migration.py @@ -1,7 +1,7 @@ # Copyright 2024 Viindoo Technology Joint Stock Company (Viindoo) # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). -from openupgradelib import openupgrade +from openupgradelib import openupgrade, openupgrade_160 from odoo import models @@ -558,6 +558,15 @@ def _rename_coa_elements_xmlids(env): ) +def _convert_account_tax_description(env): + # Deliberately call migrate_translations_to_jsonb instead of + # convert_column_translatable to support the case you have translate=True on + # the field in v16 (l10n_multilang compatibility). + openupgrade_160.migrate_translations_to_jsonb( + env, [("account.tax", "invoice_label")] + ) + + @openupgrade.migrate() def migrate(env, version): _account_payment_term_migration(env) @@ -583,3 +592,4 @@ def migrate(env, version): _map_chart_template_id_to_chart_template(env, "res_company") _map_chart_template_id_to_chart_template(env, "account_report") _rename_coa_elements_xmlids(env) + _convert_account_tax_description(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 9b911e3b15f5..192dea7d8790 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 @@ -1,6 +1,6 @@ # Copyright 2024 Viindoo Technology Joint Stock Company (Viindoo) # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -from openupgradelib import openupgrade, openupgrade_160 +from openupgradelib import openupgrade _fields_renames = [ ( @@ -71,12 +71,6 @@ def _convert_account_tax_description(env): openupgrade.rename_columns( env.cr, {"account_tax": [("description", "invoice_label")]} ) - # Deliberately call migrate_translations_to_jsonb instead of - # convert_column_translatable to support the case you have translate=True on - # the field in v16 (l10n_multilang compatibility). - openupgrade_160.migrate_translations_to_jsonb( - env, [("account_tax", "invoice_label")] - ) def _am_create_delivery_date_column(env): From 7294531c12670c77f6142454406edd938769cfb3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Mart=C3=ADnez?= Date: Mon, 15 Sep 2025 12:21:37 +0200 Subject: [PATCH 16/71] [OU-FIX] account: Remove the unnecessary _convert_account_tax_description() method in post-migration. Related to https://github.com/OCA/OpenUpgrade/pull/5369#issuecomment-3284403042 This change is not necessary because when migrating from 15 to 16, the description column in account_tax will already be json (https://github.com/OCA/OpenUpgrade/blob/4af8572c7f3e313773db558ba382b5ffd19a157c/openupgrade_scripts/scripts/base/16.0.1.3/end-migration.py#L39), therefore, in v17, you only need to rename the column (this is already done in pre-migration). TT57778 --- .../scripts/account/17.0.1.2/post-migration.py | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/openupgrade_scripts/scripts/account/17.0.1.2/post-migration.py b/openupgrade_scripts/scripts/account/17.0.1.2/post-migration.py index 88a8d5770a93..ecdabb6d28cc 100644 --- a/openupgrade_scripts/scripts/account/17.0.1.2/post-migration.py +++ b/openupgrade_scripts/scripts/account/17.0.1.2/post-migration.py @@ -1,7 +1,7 @@ # Copyright 2024 Viindoo Technology Joint Stock Company (Viindoo) # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). -from openupgradelib import openupgrade, openupgrade_160 +from openupgradelib import openupgrade from odoo import models @@ -558,15 +558,6 @@ def _rename_coa_elements_xmlids(env): ) -def _convert_account_tax_description(env): - # Deliberately call migrate_translations_to_jsonb instead of - # convert_column_translatable to support the case you have translate=True on - # the field in v16 (l10n_multilang compatibility). - openupgrade_160.migrate_translations_to_jsonb( - env, [("account.tax", "invoice_label")] - ) - - @openupgrade.migrate() def migrate(env, version): _account_payment_term_migration(env) @@ -592,4 +583,3 @@ def migrate(env, version): _map_chart_template_id_to_chart_template(env, "res_company") _map_chart_template_id_to_chart_template(env, "account_report") _rename_coa_elements_xmlids(env) - _convert_account_tax_description(env) From ad52095f8fc0e4b5d871192cfabe71411a34addf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Mart=C3=ADnez?= Date: Thu, 25 Sep 2025 14:15:35 +0200 Subject: [PATCH 17/71] [OU-IMP] maintenance: Compatibility with maintenance_plan If the note field already exists in maintenance.request, it must be renamed to the instruction_text field in core. TT58142 --- .../maintenance/17.0.1.0/pre-migration.py | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/openupgrade_scripts/scripts/maintenance/17.0.1.0/pre-migration.py b/openupgrade_scripts/scripts/maintenance/17.0.1.0/pre-migration.py index 13f0336ca46f..326d342d46a4 100644 --- a/openupgrade_scripts/scripts/maintenance/17.0.1.0/pre-migration.py +++ b/openupgrade_scripts/scripts/maintenance/17.0.1.0/pre-migration.py @@ -1,8 +1,24 @@ -# Copyright 2024 Tecnativa - Víctor Martínez +# Copyright 2024-2025 Tecnativa - Víctor Martínez # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). from openupgradelib import openupgrade +def _maintenance_plan(env): + """Rename the fields if the maintenance_plan module was installed.""" + if openupgrade.column_exists(env.cr, "maintenance_request", "note"): + openupgrade.rename_fields( + env, + [ + ( + "maintenance.request", + "maintenance_request", + "note", + "instruction_text", + ), + ], + ) + + def _maintenance_request_company_id(env): """We set the company_id value for requests that do not have it. We get the value of what will be deductively most appropriate (equipment, team or @@ -34,3 +50,4 @@ def _maintenance_request_company_id(env): @openupgrade.migrate() def migrate(env, version): _maintenance_request_company_id(env) + _maintenance_plan(env) From 19dc8e17ca8fc7d43b04ed5e6db1ce325124e91b Mon Sep 17 00:00:00 2001 From: Carlos Lopez Date: Wed, 22 Oct 2025 06:46:04 -0500 Subject: [PATCH 18/71] [OU-ADD] auth_ldap: Nothing to do --- docsource/modules160-170.rst | 2 +- .../scripts/auth_ldap/17.0.1.0/upgrade_analysis_work.txt | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) create mode 100644 openupgrade_scripts/scripts/auth_ldap/17.0.1.0/upgrade_analysis_work.txt diff --git a/docsource/modules160-170.rst b/docsource/modules160-170.rst index edad62c98766..9c78fdbaa9a2 100644 --- a/docsource/modules160-170.rst +++ b/docsource/modules160-170.rst @@ -50,7 +50,7 @@ Module coverage 16.0 -> 17.0 +---------------------------------------------------+----------------------+-------------------------------------------------+ | attachment_indexation | Nothing to do | | +---------------------------------------------------+----------------------+-------------------------------------------------+ -| auth_ldap | |No DB layout changes. | +| auth_ldap | Nothing to do |No DB layout changes. | +---------------------------------------------------+----------------------+-------------------------------------------------+ | auth_oauth | Nothing to do |No DB layout changes. | +---------------------------------------------------+----------------------+-------------------------------------------------+ diff --git a/openupgrade_scripts/scripts/auth_ldap/17.0.1.0/upgrade_analysis_work.txt b/openupgrade_scripts/scripts/auth_ldap/17.0.1.0/upgrade_analysis_work.txt new file mode 100644 index 000000000000..4b3f15c19af2 --- /dev/null +++ b/openupgrade_scripts/scripts/auth_ldap/17.0.1.0/upgrade_analysis_work.txt @@ -0,0 +1,4 @@ +---Models in module 'auth_ldap'--- +---Fields in module 'auth_ldap'--- +---XML records in module 'auth_ldap'--- +---nothing has changed in this module-- From a655bae383465ab83cd2fc72b7ed84f891648794 Mon Sep 17 00:00:00 2001 From: Carlos Lopez Date: Wed, 22 Oct 2025 06:51:36 -0500 Subject: [PATCH 19/71] [OU-ADD] l10n_latam_base: Nothing to do --- docsource/modules160-170.rst | 2 +- .../l10n_latam_base/17.0.1.0/upgrade_analysis_work.txt | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 openupgrade_scripts/scripts/l10n_latam_base/17.0.1.0/upgrade_analysis_work.txt diff --git a/docsource/modules160-170.rst b/docsource/modules160-170.rst index edad62c98766..864967604740 100644 --- a/docsource/modules160-170.rst +++ b/docsource/modules160-170.rst @@ -488,7 +488,7 @@ Module coverage 16.0 -> 17.0 +---------------------------------------------------+----------------------+-------------------------------------------------+ | |del| l10n_latam_account_sequence | |Merged into l10n_latam_invoice_document. | +---------------------------------------------------+----------------------+-------------------------------------------------+ -| l10n_latam_base | | | +| l10n_latam_base | Nothing to do | | +---------------------------------------------------+----------------------+-------------------------------------------------+ | l10n_latam_check | |No DB layout changes. | +---------------------------------------------------+----------------------+-------------------------------------------------+ diff --git a/openupgrade_scripts/scripts/l10n_latam_base/17.0.1.0/upgrade_analysis_work.txt b/openupgrade_scripts/scripts/l10n_latam_base/17.0.1.0/upgrade_analysis_work.txt new file mode 100644 index 000000000000..49b3323ae5ed --- /dev/null +++ b/openupgrade_scripts/scripts/l10n_latam_base/17.0.1.0/upgrade_analysis_work.txt @@ -0,0 +1,6 @@ +---Models in module 'l10n_latam_base'--- +---Fields in module 'l10n_latam_base'--- +---XML records in module 'l10n_latam_base'--- +NEW ir.model.access: l10n_latam_base.access_latam_identification_type_portal +NEW ir.model.access: l10n_latam_base.access_latam_identification_type_public +# NOTHING TO DO: Handled by ORM From 4866ed685ffbec27a829095e05876bd142138c1c Mon Sep 17 00:00:00 2001 From: Carlos Lopez Date: Wed, 22 Oct 2025 07:16:06 -0500 Subject: [PATCH 20/71] [OU-ADD] l10n_latam_invoice_document: Nothing to do --- docsource/modules160-170.rst | 2 +- .../17.0.1.0/upgrade_analysis_work.txt | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 openupgrade_scripts/scripts/l10n_latam_invoice_document/17.0.1.0/upgrade_analysis_work.txt diff --git a/docsource/modules160-170.rst b/docsource/modules160-170.rst index edad62c98766..38ec61f832fd 100644 --- a/docsource/modules160-170.rst +++ b/docsource/modules160-170.rst @@ -492,7 +492,7 @@ Module coverage 16.0 -> 17.0 +---------------------------------------------------+----------------------+-------------------------------------------------+ | l10n_latam_check | |No DB layout changes. | +---------------------------------------------------+----------------------+-------------------------------------------------+ -| l10n_latam_invoice_document | | | +| l10n_latam_invoice_document | Nothing to do | | +---------------------------------------------------+----------------------+-------------------------------------------------+ | |new| l10n_lb_account | | | +---------------------------------------------------+----------------------+-------------------------------------------------+ diff --git a/openupgrade_scripts/scripts/l10n_latam_invoice_document/17.0.1.0/upgrade_analysis_work.txt b/openupgrade_scripts/scripts/l10n_latam_invoice_document/17.0.1.0/upgrade_analysis_work.txt new file mode 100644 index 000000000000..e0b073eab021 --- /dev/null +++ b/openupgrade_scripts/scripts/l10n_latam_invoice_document/17.0.1.0/upgrade_analysis_work.txt @@ -0,0 +1,15 @@ +---Models in module 'l10n_latam_invoice_document'--- +---Fields in module 'l10n_latam_invoice_document'--- +l10n_latam_invoice_document / l10n_latam.document.type / internal_type (selection) : selection_keys is now '['all', 'credit_note', 'debit_note', 'invoice']' ('['credit_note', 'debit_note', 'invoice']') +# NOTHING TO DO: New feature, does not alter existing data + +---XML records in module 'l10n_latam_invoice_document'--- +NEW ir.model.access: l10n_latam_invoice_document.access_l10n_latam_document_type +DEL ir.model.access: l10n_latam_invoice_document.access_l10n_latam_document_type_all +# NOTHING TO DO: Handled by ORM + +NEW ir.model.constraint: l10n_latam_invoice_document.constraint_account_move_unique_name [renamed from l10n_latam_account_sequence module] +NEW ir.model.constraint: l10n_latam_invoice_document.constraint_account_move_unique_name_latam [renamed from l10n_latam_account_sequence module] +DEL ir.model.constraint: l10n_latam_account_sequence.constraint_account_move_unique_name [renamed to l10n_latam_invoice_document module] +DEL ir.model.constraint: l10n_latam_account_sequence.constraint_account_move_unique_name_latam [renamed to l10n_latam_invoice_document module] +# NOTHING TO DO: just moved from l10n_latam_account_sequence, but the code remains the same From c5957089c2a57b06aa938e5ef7f0f82626cb5029 Mon Sep 17 00:00:00 2001 From: Carlos Lopez Date: Wed, 22 Oct 2025 07:22:48 -0500 Subject: [PATCH 21/71] [OU-ADD] account_debit_note: Nothing to do --- docsource/modules160-170.rst | 2 +- .../account_debit_note/17.0.1.0/upgrade_analysis_work.txt | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 openupgrade_scripts/scripts/account_debit_note/17.0.1.0/upgrade_analysis_work.txt diff --git a/docsource/modules160-170.rst b/docsource/modules160-170.rst index edad62c98766..44f7e51eb724 100644 --- a/docsource/modules160-170.rst +++ b/docsource/modules160-170.rst @@ -12,7 +12,7 @@ Module coverage 16.0 -> 17.0 +---------------------------------------------------+----------------------+-------------------------------------------------+ | account_check_printing | Nothing to do |No DB layout changes. | +---------------------------------------------------+----------------------+-------------------------------------------------+ -| account_debit_note | | | +| account_debit_note | Nothing to do | | +---------------------------------------------------+----------------------+-------------------------------------------------+ | account_edi | Done | | +---------------------------------------------------+----------------------+-------------------------------------------------+ diff --git a/openupgrade_scripts/scripts/account_debit_note/17.0.1.0/upgrade_analysis_work.txt b/openupgrade_scripts/scripts/account_debit_note/17.0.1.0/upgrade_analysis_work.txt new file mode 100644 index 000000000000..748bb56e3d9c --- /dev/null +++ b/openupgrade_scripts/scripts/account_debit_note/17.0.1.0/upgrade_analysis_work.txt @@ -0,0 +1,5 @@ +---Models in module 'account_debit_note'--- +---Fields in module 'account_debit_note'--- +---XML records in module 'account_debit_note'--- +NEW ir.actions.server: account_debit_note.action_move_debit_note +# NOTHING TO DO: New feature From 0794d610923a700cd8982c51296fb6865ea82be1 Mon Sep 17 00:00:00 2001 From: Carlos Lopez Date: Wed, 22 Oct 2025 07:29:03 -0500 Subject: [PATCH 22/71] [OU-ADD] account_fleet: Nothing to do --- docsource/modules160-170.rst | 2 +- .../scripts/account_fleet/17.0.1.0/upgrade_analysis_work.txt | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 openupgrade_scripts/scripts/account_fleet/17.0.1.0/upgrade_analysis_work.txt diff --git a/docsource/modules160-170.rst b/docsource/modules160-170.rst index edad62c98766..881ff1361795 100644 --- a/docsource/modules160-170.rst +++ b/docsource/modules160-170.rst @@ -22,7 +22,7 @@ Module coverage 16.0 -> 17.0 +---------------------------------------------------+----------------------+-------------------------------------------------+ | account_edi_ubl_cii_tax_extension | |No DB layout changes. | +---------------------------------------------------+----------------------+-------------------------------------------------+ -| account_fleet | |No DB layout changes. | +| account_fleet | Nothing to do |No DB layout changes. | +---------------------------------------------------+----------------------+-------------------------------------------------+ | account_lock | | | +---------------------------------------------------+----------------------+-------------------------------------------------+ diff --git a/openupgrade_scripts/scripts/account_fleet/17.0.1.0/upgrade_analysis_work.txt b/openupgrade_scripts/scripts/account_fleet/17.0.1.0/upgrade_analysis_work.txt new file mode 100644 index 000000000000..0fc6435e1945 --- /dev/null +++ b/openupgrade_scripts/scripts/account_fleet/17.0.1.0/upgrade_analysis_work.txt @@ -0,0 +1,5 @@ +---Models in module 'account_fleet'--- +---Fields in module 'account_fleet'--- +---XML records in module 'account_fleet'--- +---nothing has changed in this module-- +# NOTHING TO DO From fca766b32bbc8ee159e6c5cc702cdf663532be8a Mon Sep 17 00:00:00 2001 From: Carlos Lopez Date: Wed, 22 Oct 2025 07:41:47 -0500 Subject: [PATCH 23/71] [OU-ADD] website_sale_product_configurator: Nothing to do --- docsource/modules160-170.rst | 2 +- .../17.0.1.0/upgrade_analysis_work.txt | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 openupgrade_scripts/scripts/website_sale_product_configurator/17.0.1.0/upgrade_analysis_work.txt diff --git a/docsource/modules160-170.rst b/docsource/modules160-170.rst index edad62c98766..578a8ea5c127 100644 --- a/docsource/modules160-170.rst +++ b/docsource/modules160-170.rst @@ -1128,7 +1128,7 @@ Module coverage 16.0 -> 17.0 +---------------------------------------------------+----------------------+-------------------------------------------------+ | website_sale_picking | Done | | +---------------------------------------------------+----------------------+-------------------------------------------------+ -| website_sale_product_configurator | | | +| website_sale_product_configurator | Nothing to do | | +---------------------------------------------------+----------------------+-------------------------------------------------+ | website_sale_slides | Nothing to do | | +---------------------------------------------------+----------------------+-------------------------------------------------+ diff --git a/openupgrade_scripts/scripts/website_sale_product_configurator/17.0.1.0/upgrade_analysis_work.txt b/openupgrade_scripts/scripts/website_sale_product_configurator/17.0.1.0/upgrade_analysis_work.txt new file mode 100644 index 000000000000..670b69b91fd5 --- /dev/null +++ b/openupgrade_scripts/scripts/website_sale_product_configurator/17.0.1.0/upgrade_analysis_work.txt @@ -0,0 +1,12 @@ +---Models in module 'website_sale_product_configurator'--- +---Fields in module 'website_sale_product_configurator'--- +---XML records in module 'website_sale_product_configurator'--- +NEW ir.ui.view: website_sale_product_configurator.configure_optional_products +NEW ir.ui.view: website_sale_product_configurator.optional_product_items +NEW ir.ui.view: website_sale_product_configurator.optional_products_modal +NEW ir.ui.view: website_sale_product_configurator.product_quantity_config +DEL ir.ui.view: website_sale_product_configurator.configure_optional_products_website +DEL ir.ui.view: website_sale_product_configurator.optional_product_items_website +DEL ir.ui.view: website_sale_product_configurator.product_quantity_config_website +DEL ir.ui.view: website_sale_stock_product_configurator.website_sale_stock_modal +# NOTHING TO DO: New views do not have an inherit_id field set, so let the ORM recreate the records. From ab225bb7334eaa2942669ba72cf7751c21311ec6 Mon Sep 17 00:00:00 2001 From: "Pedro M. Baeza" Date: Mon, 17 Nov 2025 21:49:06 +0100 Subject: [PATCH 24/71] [OU-ADD] spreadsheet_dashboard_pos_hr: Nothing to do Even no analysis file. TT57499 --- docsource/modules160-170.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docsource/modules160-170.rst b/docsource/modules160-170.rst index ed7f9b9c8f46..ad92ca965319 100644 --- a/docsource/modules160-170.rst +++ b/docsource/modules160-170.rst @@ -964,7 +964,7 @@ Module coverage 16.0 -> 17.0 +---------------------------------------------------+----------------------+-------------------------------------------------+ | spreadsheet_dashboard_im_livechat | Nothing to do | | +---------------------------------------------------+----------------------+-------------------------------------------------+ -| spreadsheet_dashboard_pos_hr | | | +| spreadsheet_dashboard_pos_hr | Nothing to do | | +---------------------------------------------------+----------------------+-------------------------------------------------+ | spreadsheet_dashboard_purchase | Nothing to do | | +---------------------------------------------------+----------------------+-------------------------------------------------+ From bb0cf4bae4d84061e67f2e8032baac2eecdec1d5 Mon Sep 17 00:00:00 2001 From: "Pedro M. Baeza" Date: Tue, 18 Nov 2025 10:08:45 +0100 Subject: [PATCH 25/71] [OU-ADD] pos_sale_product_configurator: Nothing to do Even no analysis file. TT57495 --- docsource/modules160-170.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docsource/modules160-170.rst b/docsource/modules160-170.rst index ad92ca965319..366dc8af8e58 100644 --- a/docsource/modules160-170.rst +++ b/docsource/modules160-170.rst @@ -814,7 +814,7 @@ Module coverage 16.0 -> 17.0 +---------------------------------------------------+----------------------+-------------------------------------------------+ | pos_sale_margin | | | +---------------------------------------------------+----------------------+-------------------------------------------------+ -| pos_sale_product_configurator | | | +| pos_sale_product_configurator | Nothing to do | | +---------------------------------------------------+----------------------+-------------------------------------------------+ | |new| pos_self_order | | | +---------------------------------------------------+----------------------+-------------------------------------------------+ From 7b0ce92f9ff6d1eb0f145a2208ea74f42b8575e6 Mon Sep 17 00:00:00 2001 From: "Pedro M. Baeza" Date: Thu, 27 Nov 2025 00:46:02 +0100 Subject: [PATCH 26/71] [OU-ADD] l10n_es_pos: Renamed to l10n_es_pos_oca --- openupgrade_scripts/apriori.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/openupgrade_scripts/apriori.py b/openupgrade_scripts/apriori.py index e2fc87479a50..6d19e75179ff 100644 --- a/openupgrade_scripts/apriori.py +++ b/openupgrade_scripts/apriori.py @@ -10,6 +10,8 @@ # odoo/enterprise # OCA/delivery-carrier "delivery_carrier_customer_info": "partner_delivery_info", + # OCA/l10n-spain + "l10n_es_pos": "l10n_es_pos_oca", # OCA/social "mail_activity_unlink_log": "mail_activity_cancel_tracking", } From 4a07782eebed01c83c6d6e2d116893d108987da5 Mon Sep 17 00:00:00 2001 From: Roy Le Date: Fri, 5 Dec 2025 10:18:00 +0700 Subject: [PATCH 27/71] [PERF] account: optimize migration performance by pre-creating column and bulk transferring invoice_date Pre-create the target column to avoid triggering compute() during update, and perform a direct bulk data transfer from account_move to account_move_line. This avoids ORM overhead, reduces heap rewrites, and prevents unnecessary recomputation on 15M move lines. Performance result: - Previous approach: ~2 hours - Optimized approach: ~15 minutes (~8x faster) --- .../scripts/account/17.0.1.2/pre-migration.py | 21 +++++++++++++++++++ .../17.0.1.2/upgrade_analysis_work.txt | 2 +- 2 files changed, 22 insertions(+), 1 deletion(-) 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 192dea7d8790..bcd7803a2676 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 @@ -195,6 +195,26 @@ def _pre_create_early_pay_discount_computation(env): ) +def _pre_account_move_line_invoice_date_computation(env): + """Avoid triggering the computed method""" + openupgrade.logged_query( + env.cr, + """ + ALTER TABLE account_move_line + ADD COLUMN IF NOT EXISTS invoice_date DATE; + """, + ) + openupgrade.logged_query( + env.cr, + """ + UPDATE account_move_line aml + SET invoice_date = am.invoice_date + FROM account_move am + WHERE am.invoice_date IS NOT NULL AND aml.move_id = am.id; + """, + ) + + def _decouple_obsolete_tables(env): """ Remove all foreign keys held by and pointed to template tables @@ -280,6 +300,7 @@ def migrate(env, version): _account_report_update_figure_type(env) _account_tax_repartition_line_merge_repartition_lines_m2o(env) _pre_create_early_pay_discount_computation(env) + _pre_account_move_line_invoice_date_computation(env) _decouple_obsolete_tables(env) _pre_create_account_report_active(env) _remove_obsolete_constraints(env) diff --git a/openupgrade_scripts/scripts/account/17.0.1.2/upgrade_analysis_work.txt b/openupgrade_scripts/scripts/account/17.0.1.2/upgrade_analysis_work.txt index 304ccb0bd657..209ac8815944 100644 --- a/openupgrade_scripts/scripts/account/17.0.1.2/upgrade_analysis_work.txt +++ b/openupgrade_scripts/scripts/account/17.0.1.2/upgrade_analysis_work.txt @@ -167,7 +167,7 @@ account / account.move.line / display_type (selection) : select # NOTHING TO DO: new feature "Discount allocation" https://github.com/odoo/odoo/pull/133286 account / account.move.line / invoice_date (date) : NEW isrelated: related, stored -# NOTHING TO DO: ORM resolves by SQL this filling being a direct related field with 1 level depth. +# DONE: pre-migration: Pre-create the column for avoiding triggering the compute and transfer data from account moves to all the account move lines. account / account.move.line / tax_audit (char) : DEL # NOTHING TO DO: deprecated From 6f05c71ba6b4b2609b9cc5c647496cf2f62ac3e0 Mon Sep 17 00:00:00 2001 From: Roy Le Date: Wed, 10 Dec 2025 17:14:28 +0700 Subject: [PATCH 28/71] [FIX] sale: move deposit_default_product_id setting from ir.config_parameter to res.company --- .../scripts/sale/17.0.1.2/post-migration.py | 8 ++++++++ .../scripts/sale/17.0.1.2/upgrade_analysis_work.txt | 4 ++++ 2 files changed, 12 insertions(+) diff --git a/openupgrade_scripts/scripts/sale/17.0.1.2/post-migration.py b/openupgrade_scripts/scripts/sale/17.0.1.2/post-migration.py index 7c923df60ca3..41350c89d8af 100644 --- a/openupgrade_scripts/scripts/sale/17.0.1.2/post-migration.py +++ b/openupgrade_scripts/scripts/sale/17.0.1.2/post-migration.py @@ -22,7 +22,15 @@ def _sale_order_populate_locked_field(env): ) +def _fill_res_company_deposit_default_product_id(env): + product_id = env["ir.config_parameter"].get_param("sale.default_deposit_product_id") + if product_id: + companies = env["res.company"].search([]) + companies.write({"sale_down_payment_product_id": int(product_id)}) + + @openupgrade.migrate() def migrate(env, version): openupgrade.load_data(env, "sale", "17.0.1.2/noupdate_changes.xml") _sale_order_populate_locked_field(env) + _fill_res_company_deposit_default_product_id(env) diff --git a/openupgrade_scripts/scripts/sale/17.0.1.2/upgrade_analysis_work.txt b/openupgrade_scripts/scripts/sale/17.0.1.2/upgrade_analysis_work.txt index 9761e76e0532..bbfb729690a5 100644 --- a/openupgrade_scripts/scripts/sale/17.0.1.2/upgrade_analysis_work.txt +++ b/openupgrade_scripts/scripts/sale/17.0.1.2/upgrade_analysis_work.txt @@ -11,7 +11,11 @@ sale / product.document / attached_on (selection) : NEW se sale / res.company / prepayment_percent (float) : NEW hasdefault: default sale / res.company / sale_discount_product_id (many2one): NEW relation: product.product +# NOTHING TO DO + sale / res.company / sale_down_payment_product_id (many2one): NEW relation: product.product +# DONE post-migration: migrate value from config parameter `sale.default_deposit_product_id` + sale / res.company / sale_onboarding_order_confirmation_state (selection): DEL selection_keys: ['done', 'just_done', 'not_done'] sale / res.company / sale_onboarding_sample_quotation_state (selection): DEL selection_keys: ['done', 'just_done', 'not_done'] sale / res.company / sale_quotation_onboarding_state (selection): DEL selection_keys: ['closed', 'done', 'just_done', 'not_done'] From cc2574893b0ccd0b5ab073a36de172415d3d12e6 Mon Sep 17 00:00:00 2001 From: Enric Tobella Date: Mon, 1 Dec 2025 11:53:56 +0100 Subject: [PATCH 29/71] [OU-IMP] hr: Add computation of some fields --- .../scripts/hr_holidays/17.0.1.6/pre-migration.py | 13 +++++++++++++ .../hr_holidays/17.0.1.6/upgrade_analysis_work.txt | 4 +++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/openupgrade_scripts/scripts/hr_holidays/17.0.1.6/pre-migration.py b/openupgrade_scripts/scripts/hr_holidays/17.0.1.6/pre-migration.py index a9c47fb693e0..0833472ab6b6 100644 --- a/openupgrade_scripts/scripts/hr_holidays/17.0.1.6/pre-migration.py +++ b/openupgrade_scripts/scripts/hr_holidays/17.0.1.6/pre-migration.py @@ -20,6 +20,18 @@ ], } +_field_add = [ + ( + "number_of_hours", + "hr.leave", + "hr_leave", + "float", + None, + "hr_holidays", + 0.0, + ), +] + def _pre_create_accrual_plan_active(cr): """ @@ -156,6 +168,7 @@ def migrate(env, version): openupgrade.rename_models(env.cr, _model_renames) openupgrade.rename_tables(env.cr, _table_renames) openupgrade.rename_columns(env.cr, _column_renames) + openupgrade.add_fields(env, _field_add) _pre_create_accrual_plan_active(env.cr) _hr_leave_company_id(env.cr) _map_leave_accrual_level_action(env.cr) diff --git a/openupgrade_scripts/scripts/hr_holidays/17.0.1.6/upgrade_analysis_work.txt b/openupgrade_scripts/scripts/hr_holidays/17.0.1.6/upgrade_analysis_work.txt index 0faccd0c5fdf..700f71baf9c5 100644 --- a/openupgrade_scripts/scripts/hr_holidays/17.0.1.6/upgrade_analysis_work.txt +++ b/openupgrade_scripts/scripts/hr_holidays/17.0.1.6/upgrade_analysis_work.txt @@ -29,8 +29,10 @@ hr_holidays / hr.leave / mode_company_id (many2one) : not a # NOTHING TO DO: states removed only hr_holidays / hr.leave / number_of_days (float) : now a function +# NOTHING TO DO + hr_holidays / hr.leave / number_of_hours (float) : NEW isfunction: function, stored -# NOTHING TO DO: computed fields +# DONE: pre-migration: add column for avoiding the computation hr_holidays / hr.leave / rating_ids (one2many) : NEW relation: rating.rating hr_holidays / hr.leave / resource_calendar_id (many2one): NEW relation: resource.calendar, hasdefault: compute From fe4cc24143c1c897a4d611a827dd55b5cae585c7 Mon Sep 17 00:00:00 2001 From: "Pedro M. Baeza" Date: Sat, 13 Dec 2025 11:20:54 +0100 Subject: [PATCH 30/71] [OU-FIX] base: Cover private contact with no name As res_partner_check_name constraint only limits not null names for regular contacts, there may be the case where the private contact has a null name, so when converting it to regular contact, it fails. Let's put a wildcard name for that cases. --- openupgrade_scripts/scripts/base/17.0.1.3/pre-migration.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/openupgrade_scripts/scripts/base/17.0.1.3/pre-migration.py b/openupgrade_scripts/scripts/base/17.0.1.3/pre-migration.py index de50c53ca7c0..df2dbc076918 100644 --- a/openupgrade_scripts/scripts/base/17.0.1.3/pre-migration.py +++ b/openupgrade_scripts/scripts/base/17.0.1.3/pre-migration.py @@ -222,6 +222,8 @@ def _handle_partner_private_type(cr): openupgrade.copy_columns(cr, _column_copies) # Change contact type and erase sensitive information query = "type = 'contact'" + # name of private contact may be null, which is forbidden by res_partner_check_name + query += ", name = COALESCE(name, '*****')" for field in [ "street", "street2", From 385af7a59047c36e12612de79b8595a30cd53375 Mon Sep 17 00:00:00 2001 From: "Pedro M. Baeza" Date: Sat, 27 Dec 2025 13:04:39 +0100 Subject: [PATCH 31/71] [OU-ADD] l10n_pt: Migration scripts TT50084 --- docsource/modules160-170.rst | 2 +- .../l10n_pt/17.0.1.0/post-migration.py | 17 + .../scripts/l10n_pt/17.0.1.0/pre-migration.py | 29 + .../17.0.1.0/upgrade_analysis_work.txt | 608 ++++++++++++++++++ 4 files changed, 655 insertions(+), 1 deletion(-) create mode 100644 openupgrade_scripts/scripts/l10n_pt/17.0.1.0/post-migration.py create mode 100644 openupgrade_scripts/scripts/l10n_pt/17.0.1.0/pre-migration.py create mode 100644 openupgrade_scripts/scripts/l10n_pt/17.0.1.0/upgrade_analysis_work.txt diff --git a/docsource/modules160-170.rst b/docsource/modules160-170.rst index 366dc8af8e58..399afb923a68 100644 --- a/docsource/modules160-170.rst +++ b/docsource/modules160-170.rst @@ -560,7 +560,7 @@ Module coverage 16.0 -> 17.0 +---------------------------------------------------+----------------------+-------------------------------------------------+ | |del| l10n_pl_sale_stock | |No DB layout changes. | +---------------------------------------------------+----------------------+-------------------------------------------------+ -| l10n_pt | | | +| l10n_pt | Done | | +---------------------------------------------------+----------------------+-------------------------------------------------+ | |new| l10n_qa | | | +---------------------------------------------------+----------------------+-------------------------------------------------+ diff --git a/openupgrade_scripts/scripts/l10n_pt/17.0.1.0/post-migration.py b/openupgrade_scripts/scripts/l10n_pt/17.0.1.0/post-migration.py new file mode 100644 index 000000000000..54a893e5e6f6 --- /dev/null +++ b/openupgrade_scripts/scripts/l10n_pt/17.0.1.0/post-migration.py @@ -0,0 +1,17 @@ +# Copyright 2025 Tecnativa - Pedro M. Baeza +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). +from openupgradelib import openupgrade + + +@openupgrade.migrate() +def migrate(env, version): + l10n_pt_xmlids = [ + "fiscal_position_foreign_eu", + "fiscal_position_foreign_eu_private", + "fiscal_position_foreign_other", + "fiscal_position_national_customers", + ] + for xmlid in l10n_pt_xmlids: + env["ir.model.data"].search( + [("name", "=", xmlid), ("module", "=", "l10n_pt")] + ).unlink() diff --git a/openupgrade_scripts/scripts/l10n_pt/17.0.1.0/pre-migration.py b/openupgrade_scripts/scripts/l10n_pt/17.0.1.0/pre-migration.py new file mode 100644 index 000000000000..6f2a5647abc9 --- /dev/null +++ b/openupgrade_scripts/scripts/l10n_pt/17.0.1.0/pre-migration.py @@ -0,0 +1,29 @@ +# Copyright 2025 Tecnativa - Pedro M. Baeza +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). +from openupgradelib import openupgrade + + +def _remove_xml_id_account_fiscal_position(env): + """In 17.0 account.fiscal.position.tax and account.fiscal.position.account don't + have xml_id, so let's remove it for companies with this CoA. + """ + for company in ( + env["res.company"] + .with_context(active_test=False) + .search([("chart_template", "=", "pt")]) + ): + openupgrade.logged_query( + env.cr, + f""" + DELETE FROM ir_model_data + WHERE module='l10n_pt' + AND model IN ( + 'account.fiscal.position.tax', 'account.fiscal.position.account' + ) AND name LIKE '{company.id}_%' + """, + ) + + +@openupgrade.migrate() +def migrate(env, version): + _remove_xml_id_account_fiscal_position(env) diff --git a/openupgrade_scripts/scripts/l10n_pt/17.0.1.0/upgrade_analysis_work.txt b/openupgrade_scripts/scripts/l10n_pt/17.0.1.0/upgrade_analysis_work.txt new file mode 100644 index 000000000000..690ad196a3c8 --- /dev/null +++ b/openupgrade_scripts/scripts/l10n_pt/17.0.1.0/upgrade_analysis_work.txt @@ -0,0 +1,608 @@ +---Models in module 'l10n_pt'--- +---Fields in module 'l10n_pt'--- +l10n_pt / account.account / l10n_pt_taxonomy_code (integer): NEW +# NOTHING TO DO: Will be auto-filled on the next chart update. Launching this update through code may introduce undesired changes. + +---XML records in module 'l10n_pt'--- +DEL account.account.template: l10n_pt.chart_13 +DEL account.account.template: l10n_pt.chart_1411 +DEL account.account.template: l10n_pt.chart_1412 +DEL account.account.template: l10n_pt.chart_1421 +DEL account.account.template: l10n_pt.chart_1422 +DEL account.account.template: l10n_pt.chart_1431 +DEL account.account.template: l10n_pt.chart_1432 +DEL account.account.template: l10n_pt.chart_2111 +DEL account.account.template: l10n_pt.chart_2112 +DEL account.account.template: l10n_pt.chart_2113 +DEL account.account.template: l10n_pt.chart_2114 +DEL account.account.template: l10n_pt.chart_2115 +DEL account.account.template: l10n_pt.chart_2116 +DEL account.account.template: l10n_pt.chart_2117 +DEL account.account.template: l10n_pt.chart_2121 +DEL account.account.template: l10n_pt.chart_2122 +DEL account.account.template: l10n_pt.chart_2123 +DEL account.account.template: l10n_pt.chart_2124 +DEL account.account.template: l10n_pt.chart_2125 +DEL account.account.template: l10n_pt.chart_2126 +DEL account.account.template: l10n_pt.chart_218 +DEL account.account.template: l10n_pt.chart_219 +DEL account.account.template: l10n_pt.chart_2211 +DEL account.account.template: l10n_pt.chart_2212 +DEL account.account.template: l10n_pt.chart_2213 +DEL account.account.template: l10n_pt.chart_2214 +DEL account.account.template: l10n_pt.chart_2215 +DEL account.account.template: l10n_pt.chart_2216 +DEL account.account.template: l10n_pt.chart_2221 +DEL account.account.template: l10n_pt.chart_2222 +DEL account.account.template: l10n_pt.chart_2223 +DEL account.account.template: l10n_pt.chart_2224 +DEL account.account.template: l10n_pt.chart_2225 +DEL account.account.template: l10n_pt.chart_2226 +DEL account.account.template: l10n_pt.chart_225 +DEL account.account.template: l10n_pt.chart_229 +DEL account.account.template: l10n_pt.chart_2311 +DEL account.account.template: l10n_pt.chart_2312 +DEL account.account.template: l10n_pt.chart_2321 +DEL account.account.template: l10n_pt.chart_2322 +DEL account.account.template: l10n_pt.chart_2371 +DEL account.account.template: l10n_pt.chart_2372 +DEL account.account.template: l10n_pt.chart_2381 +DEL account.account.template: l10n_pt.chart_239 +DEL account.account.template: l10n_pt.chart_2431 +DEL account.account.template: l10n_pt.chart_2432 +DEL account.account.template: l10n_pt.chart_2433 +DEL account.account.template: l10n_pt.chart_2434 +DEL account.account.template: l10n_pt.chart_2435 +DEL account.account.template: l10n_pt.chart_2436 +DEL account.account.template: l10n_pt.chart_2437 +DEL account.account.template: l10n_pt.chart_2438 +DEL account.account.template: l10n_pt.chart_2439 +DEL account.account.template: l10n_pt.chart_244 +DEL account.account.template: l10n_pt.chart_245 +DEL account.account.template: l10n_pt.chart_246 +DEL account.account.template: l10n_pt.chart_248 +DEL account.account.template: l10n_pt.chart_2511 +DEL account.account.template: l10n_pt.chart_2512 +DEL account.account.template: l10n_pt.chart_2513 +DEL account.account.template: l10n_pt.chart_2521 +DEL account.account.template: l10n_pt.chart_2531 +DEL account.account.template: l10n_pt.chart_2532 +DEL account.account.template: l10n_pt.chart_254 +DEL account.account.template: l10n_pt.chart_258 +DEL account.account.template: l10n_pt.chart_261 +DEL account.account.template: l10n_pt.chart_262 +DEL account.account.template: l10n_pt.chart_263 +DEL account.account.template: l10n_pt.chart_264 +DEL account.account.template: l10n_pt.chart_265 +DEL account.account.template: l10n_pt.chart_266 +DEL account.account.template: l10n_pt.chart_268 +DEL account.account.template: l10n_pt.chart_269 +DEL account.account.template: l10n_pt.chart_2711 +DEL account.account.template: l10n_pt.chart_2712 +DEL account.account.template: l10n_pt.chart_2713 +DEL account.account.template: l10n_pt.chart_2721 +DEL account.account.template: l10n_pt.chart_2722 +DEL account.account.template: l10n_pt.chart_273 +DEL account.account.template: l10n_pt.chart_2741 +DEL account.account.template: l10n_pt.chart_2742 +DEL account.account.template: l10n_pt.chart_275 +DEL account.account.template: l10n_pt.chart_276 +DEL account.account.template: l10n_pt.chart_278 +DEL account.account.template: l10n_pt.chart_279 +DEL account.account.template: l10n_pt.chart_281 +DEL account.account.template: l10n_pt.chart_282 +DEL account.account.template: l10n_pt.chart_291 +DEL account.account.template: l10n_pt.chart_292 +DEL account.account.template: l10n_pt.chart_293 +DEL account.account.template: l10n_pt.chart_294 +DEL account.account.template: l10n_pt.chart_295 +DEL account.account.template: l10n_pt.chart_296 +DEL account.account.template: l10n_pt.chart_297 +DEL account.account.template: l10n_pt.chart_298 +DEL account.account.template: l10n_pt.chart_311 +DEL account.account.template: l10n_pt.chart_312 +DEL account.account.template: l10n_pt.chart_313 +DEL account.account.template: l10n_pt.chart_317 +DEL account.account.template: l10n_pt.chart_318 +DEL account.account.template: l10n_pt.chart_325 +DEL account.account.template: l10n_pt.chart_326 +DEL account.account.template: l10n_pt.chart_329 +DEL account.account.template: l10n_pt.chart_331 +DEL account.account.template: l10n_pt.chart_332 +DEL account.account.template: l10n_pt.chart_333 +DEL account.account.template: l10n_pt.chart_334 +DEL account.account.template: l10n_pt.chart_335 +DEL account.account.template: l10n_pt.chart_339 +DEL account.account.template: l10n_pt.chart_346 +DEL account.account.template: l10n_pt.chart_349 +DEL account.account.template: l10n_pt.chart_351 +DEL account.account.template: l10n_pt.chart_352 +DEL account.account.template: l10n_pt.chart_359 +DEL account.account.template: l10n_pt.chart_36 +DEL account.account.template: l10n_pt.chart_3711 +DEL account.account.template: l10n_pt.chart_3712 +DEL account.account.template: l10n_pt.chart_3721 +DEL account.account.template: l10n_pt.chart_3722 +DEL account.account.template: l10n_pt.chart_382 +DEL account.account.template: l10n_pt.chart_383 +DEL account.account.template: l10n_pt.chart_384 +DEL account.account.template: l10n_pt.chart_385 +DEL account.account.template: l10n_pt.chart_386 +DEL account.account.template: l10n_pt.chart_387 +DEL account.account.template: l10n_pt.chart_39 +DEL account.account.template: l10n_pt.chart_4111 +DEL account.account.template: l10n_pt.chart_4112 +DEL account.account.template: l10n_pt.chart_4113 +DEL account.account.template: l10n_pt.chart_4121 +DEL account.account.template: l10n_pt.chart_4122 +DEL account.account.template: l10n_pt.chart_4123 +DEL account.account.template: l10n_pt.chart_4131 +DEL account.account.template: l10n_pt.chart_4132 +DEL account.account.template: l10n_pt.chart_4133 +DEL account.account.template: l10n_pt.chart_4141 +DEL account.account.template: l10n_pt.chart_4142 +DEL account.account.template: l10n_pt.chart_4151 +DEL account.account.template: l10n_pt.chart_4158 +DEL account.account.template: l10n_pt.chart_419 +DEL account.account.template: l10n_pt.chart_421 +DEL account.account.template: l10n_pt.chart_422 +DEL account.account.template: l10n_pt.chart_426 +DEL account.account.template: l10n_pt.chart_428 +DEL account.account.template: l10n_pt.chart_429 +DEL account.account.template: l10n_pt.chart_431 +DEL account.account.template: l10n_pt.chart_432 +DEL account.account.template: l10n_pt.chart_433 +DEL account.account.template: l10n_pt.chart_434 +DEL account.account.template: l10n_pt.chart_435 +DEL account.account.template: l10n_pt.chart_436 +DEL account.account.template: l10n_pt.chart_437 +DEL account.account.template: l10n_pt.chart_438 +DEL account.account.template: l10n_pt.chart_439 +DEL account.account.template: l10n_pt.chart_441 +DEL account.account.template: l10n_pt.chart_442 +DEL account.account.template: l10n_pt.chart_443 +DEL account.account.template: l10n_pt.chart_444 +DEL account.account.template: l10n_pt.chart_446 +DEL account.account.template: l10n_pt.chart_448 +DEL account.account.template: l10n_pt.chart_449 +DEL account.account.template: l10n_pt.chart_451 +DEL account.account.template: l10n_pt.chart_452 +DEL account.account.template: l10n_pt.chart_453 +DEL account.account.template: l10n_pt.chart_454 +DEL account.account.template: l10n_pt.chart_455 +DEL account.account.template: l10n_pt.chart_459 +DEL account.account.template: l10n_pt.chart_469 +DEL account.account.template: l10n_pt.chart_51 +DEL account.account.template: l10n_pt.chart_521 +DEL account.account.template: l10n_pt.chart_522 +DEL account.account.template: l10n_pt.chart_53 +DEL account.account.template: l10n_pt.chart_54 +DEL account.account.template: l10n_pt.chart_551 +DEL account.account.template: l10n_pt.chart_552 +DEL account.account.template: l10n_pt.chart_56 +DEL account.account.template: l10n_pt.chart_5711 +DEL account.account.template: l10n_pt.chart_5712 +DEL account.account.template: l10n_pt.chart_5713 +DEL account.account.template: l10n_pt.chart_579 +DEL account.account.template: l10n_pt.chart_5811 +DEL account.account.template: l10n_pt.chart_5812 +DEL account.account.template: l10n_pt.chart_5891 +DEL account.account.template: l10n_pt.chart_5892 +DEL account.account.template: l10n_pt.chart_591 +DEL account.account.template: l10n_pt.chart_592 +DEL account.account.template: l10n_pt.chart_593 +DEL account.account.template: l10n_pt.chart_594 +DEL account.account.template: l10n_pt.chart_599 +DEL account.account.template: l10n_pt.chart_611 +DEL account.account.template: l10n_pt.chart_612 +DEL account.account.template: l10n_pt.chart_613 +DEL account.account.template: l10n_pt.chart_621 +DEL account.account.template: l10n_pt.chart_6221 +DEL account.account.template: l10n_pt.chart_6222 +DEL account.account.template: l10n_pt.chart_6223 +DEL account.account.template: l10n_pt.chart_6224 +DEL account.account.template: l10n_pt.chart_6225 +DEL account.account.template: l10n_pt.chart_6226 +DEL account.account.template: l10n_pt.chart_6228 +DEL account.account.template: l10n_pt.chart_6231 +DEL account.account.template: l10n_pt.chart_6232 +DEL account.account.template: l10n_pt.chart_6233 +DEL account.account.template: l10n_pt.chart_6234 +DEL account.account.template: l10n_pt.chart_6238 +DEL account.account.template: l10n_pt.chart_6241 +DEL account.account.template: l10n_pt.chart_6242 +DEL account.account.template: l10n_pt.chart_6243 +DEL account.account.template: l10n_pt.chart_6248 +DEL account.account.template: l10n_pt.chart_6251 +DEL account.account.template: l10n_pt.chart_6252 +DEL account.account.template: l10n_pt.chart_6253 +DEL account.account.template: l10n_pt.chart_6258 +DEL account.account.template: l10n_pt.chart_6261 +DEL account.account.template: l10n_pt.chart_6262 +DEL account.account.template: l10n_pt.chart_6263 +DEL account.account.template: l10n_pt.chart_6264 +DEL account.account.template: l10n_pt.chart_6265 +DEL account.account.template: l10n_pt.chart_6266 +DEL account.account.template: l10n_pt.chart_6267 +DEL account.account.template: l10n_pt.chart_6268 +DEL account.account.template: l10n_pt.chart_631 +DEL account.account.template: l10n_pt.chart_632 +DEL account.account.template: l10n_pt.chart_6331 +DEL account.account.template: l10n_pt.chart_6332 +DEL account.account.template: l10n_pt.chart_634 +DEL account.account.template: l10n_pt.chart_635 +DEL account.account.template: l10n_pt.chart_636 +DEL account.account.template: l10n_pt.chart_637 +DEL account.account.template: l10n_pt.chart_638 +DEL account.account.template: l10n_pt.chart_641 +DEL account.account.template: l10n_pt.chart_642 +DEL account.account.template: l10n_pt.chart_643 +DEL account.account.template: l10n_pt.chart_6511 +DEL account.account.template: l10n_pt.chart_6512 +DEL account.account.template: l10n_pt.chart_652 +DEL account.account.template: l10n_pt.chart_653 +DEL account.account.template: l10n_pt.chart_654 +DEL account.account.template: l10n_pt.chart_655 +DEL account.account.template: l10n_pt.chart_656 +DEL account.account.template: l10n_pt.chart_657 +DEL account.account.template: l10n_pt.chart_658 +DEL account.account.template: l10n_pt.chart_661 +DEL account.account.template: l10n_pt.chart_662 +DEL account.account.template: l10n_pt.chart_663 +DEL account.account.template: l10n_pt.chart_664 +DEL account.account.template: l10n_pt.chart_671 +DEL account.account.template: l10n_pt.chart_672 +DEL account.account.template: l10n_pt.chart_673 +DEL account.account.template: l10n_pt.chart_674 +DEL account.account.template: l10n_pt.chart_675 +DEL account.account.template: l10n_pt.chart_676 +DEL account.account.template: l10n_pt.chart_677 +DEL account.account.template: l10n_pt.chart_678 +DEL account.account.template: l10n_pt.chart_6811 +DEL account.account.template: l10n_pt.chart_6812 +DEL account.account.template: l10n_pt.chart_6813 +DEL account.account.template: l10n_pt.chart_682 +DEL account.account.template: l10n_pt.chart_683 +DEL account.account.template: l10n_pt.chart_6841 +DEL account.account.template: l10n_pt.chart_6842 +DEL account.account.template: l10n_pt.chart_6848 +DEL account.account.template: l10n_pt.chart_6851 +DEL account.account.template: l10n_pt.chart_6852 +DEL account.account.template: l10n_pt.chart_6853 +DEL account.account.template: l10n_pt.chart_6858 +DEL account.account.template: l10n_pt.chart_6861 +DEL account.account.template: l10n_pt.chart_6862 +DEL account.account.template: l10n_pt.chart_6868 +DEL account.account.template: l10n_pt.chart_6871 +DEL account.account.template: l10n_pt.chart_6872 +DEL account.account.template: l10n_pt.chart_6873 +DEL account.account.template: l10n_pt.chart_6874 +DEL account.account.template: l10n_pt.chart_6878 +DEL account.account.template: l10n_pt.chart_6881 +DEL account.account.template: l10n_pt.chart_6882 +DEL account.account.template: l10n_pt.chart_6883 +DEL account.account.template: l10n_pt.chart_6884 +DEL account.account.template: l10n_pt.chart_6885 +DEL account.account.template: l10n_pt.chart_6886 +DEL account.account.template: l10n_pt.chart_6888 +DEL account.account.template: l10n_pt.chart_6911 +DEL account.account.template: l10n_pt.chart_6918 +DEL account.account.template: l10n_pt.chart_692 +DEL account.account.template: l10n_pt.chart_6921 +DEL account.account.template: l10n_pt.chart_6928 +DEL account.account.template: l10n_pt.chart_6981 +DEL account.account.template: l10n_pt.chart_6988 +DEL account.account.template: l10n_pt.chart_711 +DEL account.account.template: l10n_pt.chart_712 +DEL account.account.template: l10n_pt.chart_713 +DEL account.account.template: l10n_pt.chart_714 +DEL account.account.template: l10n_pt.chart_716 +DEL account.account.template: l10n_pt.chart_717 +DEL account.account.template: l10n_pt.chart_718 +DEL account.account.template: l10n_pt.chart_721 +DEL account.account.template: l10n_pt.chart_722 +DEL account.account.template: l10n_pt.chart_725 +DEL account.account.template: l10n_pt.chart_726 +DEL account.account.template: l10n_pt.chart_728 +DEL account.account.template: l10n_pt.chart_731 +DEL account.account.template: l10n_pt.chart_732 +DEL account.account.template: l10n_pt.chart_733 +DEL account.account.template: l10n_pt.chart_734 +DEL account.account.template: l10n_pt.chart_741 +DEL account.account.template: l10n_pt.chart_742 +DEL account.account.template: l10n_pt.chart_743 +DEL account.account.template: l10n_pt.chart_744 +DEL account.account.template: l10n_pt.chart_751 +DEL account.account.template: l10n_pt.chart_752 +DEL account.account.template: l10n_pt.chart_7611 +DEL account.account.template: l10n_pt.chart_7612 +DEL account.account.template: l10n_pt.chart_7613 +DEL account.account.template: l10n_pt.chart_76211 +DEL account.account.template: l10n_pt.chart_76212 +DEL account.account.template: l10n_pt.chart_7622 +DEL account.account.template: l10n_pt.chart_7623 +DEL account.account.template: l10n_pt.chart_7624 +DEL account.account.template: l10n_pt.chart_7625 +DEL account.account.template: l10n_pt.chart_7626 +DEL account.account.template: l10n_pt.chart_7627 +DEL account.account.template: l10n_pt.chart_7628 +DEL account.account.template: l10n_pt.chart_7631 +DEL account.account.template: l10n_pt.chart_7632 +DEL account.account.template: l10n_pt.chart_7633 +DEL account.account.template: l10n_pt.chart_7634 +DEL account.account.template: l10n_pt.chart_7635 +DEL account.account.template: l10n_pt.chart_7636 +DEL account.account.template: l10n_pt.chart_7637 +DEL account.account.template: l10n_pt.chart_7638 +DEL account.account.template: l10n_pt.chart_771 +DEL account.account.template: l10n_pt.chart_772 +DEL account.account.template: l10n_pt.chart_773 +DEL account.account.template: l10n_pt.chart_774 +DEL account.account.template: l10n_pt.chart_7811 +DEL account.account.template: l10n_pt.chart_7812 +DEL account.account.template: l10n_pt.chart_7813 +DEL account.account.template: l10n_pt.chart_7814 +DEL account.account.template: l10n_pt.chart_7815 +DEL account.account.template: l10n_pt.chart_7816 +DEL account.account.template: l10n_pt.chart_783 +DEL account.account.template: l10n_pt.chart_7841 +DEL account.account.template: l10n_pt.chart_7842 +DEL account.account.template: l10n_pt.chart_7848 +DEL account.account.template: l10n_pt.chart_7851 +DEL account.account.template: l10n_pt.chart_7852 +DEL account.account.template: l10n_pt.chart_7858 +DEL account.account.template: l10n_pt.chart_7861 +DEL account.account.template: l10n_pt.chart_7862 +DEL account.account.template: l10n_pt.chart_7868 +DEL account.account.template: l10n_pt.chart_7871 +DEL account.account.template: l10n_pt.chart_7872 +DEL account.account.template: l10n_pt.chart_7873 +DEL account.account.template: l10n_pt.chart_7878 +DEL account.account.template: l10n_pt.chart_7881 +DEL account.account.template: l10n_pt.chart_7882 +DEL account.account.template: l10n_pt.chart_7883 +DEL account.account.template: l10n_pt.chart_7884 +DEL account.account.template: l10n_pt.chart_7885 +DEL account.account.template: l10n_pt.chart_7888 +DEL account.account.template: l10n_pt.chart_7911 +DEL account.account.template: l10n_pt.chart_7912 +DEL account.account.template: l10n_pt.chart_7913 +DEL account.account.template: l10n_pt.chart_7914 +DEL account.account.template: l10n_pt.chart_7915 +DEL account.account.template: l10n_pt.chart_7918 +DEL account.account.template: l10n_pt.chart_7921 +DEL account.account.template: l10n_pt.chart_7922 +DEL account.account.template: l10n_pt.chart_7923 +DEL account.account.template: l10n_pt.chart_7928 +DEL account.account.template: l10n_pt.chart_798 +DEL account.account.template: l10n_pt.chart_811 +DEL account.account.template: l10n_pt.chart_8121 +DEL account.account.template: l10n_pt.chart_8122 +DEL account.account.template: l10n_pt.chart_818 +DEL account.account.template: l10n_pt.chart_89 +DEL account.tax.template: l10n_pt.compiva0 +DEL account.tax.template: l10n_pt.compiva12 +DEL account.tax.template: l10n_pt.compiva13 +DEL account.tax.template: l10n_pt.compiva16 +DEL account.tax.template: l10n_pt.compiva22 +DEL account.tax.template: l10n_pt.compiva23 +DEL account.tax.template: l10n_pt.compiva4 +DEL account.tax.template: l10n_pt.compiva5 +DEL account.tax.template: l10n_pt.compiva6 +DEL account.tax.template: l10n_pt.compiva9 +DEL account.tax.template: l10n_pt.iva0 +DEL account.tax.template: l10n_pt.iva12 +DEL account.tax.template: l10n_pt.iva13 +DEL account.tax.template: l10n_pt.iva16 +DEL account.tax.template: l10n_pt.iva22 +DEL account.tax.template: l10n_pt.iva23 +DEL account.tax.template: l10n_pt.iva4 +DEL account.tax.template: l10n_pt.iva5 +DEL account.tax.template: l10n_pt.iva6 +DEL account.tax.template: l10n_pt.iva9 +# NOTHING TO DO: New CoA loading system + +DEL account.chart.template: l10n_pt.pt_chart_template +# NOTHING TO DO: New CoA system, already handled in account post-migration + +DEL account.fiscal.position.template: l10n_pt.fiscal_position_foreign_eu (noupdate) +DEL account.fiscal.position.template: l10n_pt.fiscal_position_foreign_eu_private (noupdate) +DEL account.fiscal.position.template: l10n_pt.fiscal_position_foreign_other (noupdate) +DEL account.fiscal.position.template: l10n_pt.fiscal_position_national_customers (noupdate) +# DONE: post-migration: Remove XML-IDs, as the model doesn't exist + +NEW account.report: l10n_pt.tax_report_pt +DEL account.report: l10n_pt.tax_report [renamed to l10n_rw module] +NEW account.report.expression: l10n_pt.trp_base_12_tag +NEW account.report.expression: l10n_pt.trp_base_14_tag +NEW account.report.expression: l10n_pt.trp_base_15_tag +NEW account.report.expression: l10n_pt.trp_base_16_tag +NEW account.report.expression: l10n_pt.trp_base_18_tag +NEW account.report.expression: l10n_pt.trp_base_1_tag +NEW account.report.expression: l10n_pt.trp_base_3_tag +NEW account.report.expression: l10n_pt.trp_base_5_tag +NEW account.report.expression: l10n_pt.trp_base_7_tag +NEW account.report.expression: l10n_pt.trp_base_8_tag +NEW account.report.expression: l10n_pt.trp_base_9_tag +NEW account.report.expression: l10n_pt.trp_tax_favor_company_20_tag +NEW account.report.expression: l10n_pt.trp_tax_favor_company_21_tag +NEW account.report.expression: l10n_pt.trp_tax_favor_company_22_tag +NEW account.report.expression: l10n_pt.trp_tax_favor_company_23_tag +NEW account.report.expression: l10n_pt.trp_tax_favor_company_24_tag +NEW account.report.expression: l10n_pt.trp_tax_favor_company_40_tag +NEW account.report.expression: l10n_pt.trp_tax_favor_company_61_tag +NEW account.report.expression: l10n_pt.trp_tax_favor_company_65_tag +NEW account.report.expression: l10n_pt.trp_tax_favor_company_67_tag +NEW account.report.expression: l10n_pt.trp_tax_favor_state_100_tag +NEW account.report.expression: l10n_pt.trp_tax_favor_state_101_tag +NEW account.report.expression: l10n_pt.trp_tax_favor_state_102_tag +NEW account.report.expression: l10n_pt.trp_tax_favor_state_103_tag +NEW account.report.expression: l10n_pt.trp_tax_favor_state_104_tag +NEW account.report.expression: l10n_pt.trp_tax_favor_state_105_tag +NEW account.report.expression: l10n_pt.trp_tax_favor_state_107_tag +NEW account.report.expression: l10n_pt.trp_tax_favor_state_13_tag +NEW account.report.expression: l10n_pt.trp_tax_favor_state_17_tag +NEW account.report.expression: l10n_pt.trp_tax_favor_state_19_tag +NEW account.report.expression: l10n_pt.trp_tax_favor_state_2_tag +NEW account.report.expression: l10n_pt.trp_tax_favor_state_41_tag +NEW account.report.expression: l10n_pt.trp_tax_favor_state_4_tag +NEW account.report.expression: l10n_pt.trp_tax_favor_state_66_tag +NEW account.report.expression: l10n_pt.trp_tax_favor_state_68_tag +NEW account.report.expression: l10n_pt.trp_tax_favor_state_6_tag +NEW account.report.expression: l10n_pt.trp_tax_favor_state_97_tag +NEW account.report.expression: l10n_pt.trp_tax_favor_state_98_tag +NEW account.report.expression: l10n_pt.trp_tax_favor_state_99_tag +NEW account.report.expression: l10n_pt.trp_tax_favor_state_total_93_formula +NEW account.report.expression: l10n_pt.trp_tax_favor_state_total_94_formula +DEL account.report.expression: l10n_pt.tax_report_pt_base_despesas_faturas_intermedia_tag +DEL account.report.expression: l10n_pt.tax_report_pt_base_despesas_faturas_isento_tag +DEL account.report.expression: l10n_pt.tax_report_pt_base_despesas_faturas_normal_tag +DEL account.report.expression: l10n_pt.tax_report_pt_base_despesas_faturas_reduzida_tag +DEL account.report.expression: l10n_pt.tax_report_pt_base_despesas_notas_credito_intermedia_tag +DEL account.report.expression: l10n_pt.tax_report_pt_base_despesas_notas_credito_isento_tag +DEL account.report.expression: l10n_pt.tax_report_pt_base_despesas_notas_credito_normal_tag +DEL account.report.expression: l10n_pt.tax_report_pt_base_despesas_notas_credito_reduzida_tag +DEL account.report.expression: l10n_pt.tax_report_pt_base_vendas_faturas_intermedia_tag +DEL account.report.expression: l10n_pt.tax_report_pt_base_vendas_faturas_isento_tag +DEL account.report.expression: l10n_pt.tax_report_pt_base_vendas_faturas_normal_tag +DEL account.report.expression: l10n_pt.tax_report_pt_base_vendas_faturas_reduzida_tag +DEL account.report.expression: l10n_pt.tax_report_pt_base_vendas_notas_credito_intermedia_tag +DEL account.report.expression: l10n_pt.tax_report_pt_base_vendas_notas_credito_isento_tag +DEL account.report.expression: l10n_pt.tax_report_pt_base_vendas_notas_credito_normal_tag +DEL account.report.expression: l10n_pt.tax_report_pt_base_vendas_notas_credito_reduzida_tag +DEL account.report.expression: l10n_pt.tax_report_pt_tax_despesas_faturas_intermedia_tag +DEL account.report.expression: l10n_pt.tax_report_pt_tax_despesas_faturas_isento_tag +DEL account.report.expression: l10n_pt.tax_report_pt_tax_despesas_faturas_normal_tag +DEL account.report.expression: l10n_pt.tax_report_pt_tax_despesas_faturas_reduzida_tag +DEL account.report.expression: l10n_pt.tax_report_pt_tax_despesas_notas_credito_intermedia_tag +DEL account.report.expression: l10n_pt.tax_report_pt_tax_despesas_notas_credito_isento_tag +DEL account.report.expression: l10n_pt.tax_report_pt_tax_despesas_notas_credito_normal_tag +DEL account.report.expression: l10n_pt.tax_report_pt_tax_despesas_notas_credito_reduzida_tag +DEL account.report.expression: l10n_pt.tax_report_pt_tax_total_pagar_formula +DEL account.report.expression: l10n_pt.tax_report_pt_tax_total_receber_formula +DEL account.report.expression: l10n_pt.tax_report_pt_tax_vendas_faturas_intermedia_tag +DEL account.report.expression: l10n_pt.tax_report_pt_tax_vendas_faturas_isento_tag +DEL account.report.expression: l10n_pt.tax_report_pt_tax_vendas_faturas_normal_tag +DEL account.report.expression: l10n_pt.tax_report_pt_tax_vendas_faturas_reduzida_tag +DEL account.report.expression: l10n_pt.tax_report_pt_tax_vendas_notas_credito_intermedia_tag +DEL account.report.expression: l10n_pt.tax_report_pt_tax_vendas_notas_credito_isento_tag +DEL account.report.expression: l10n_pt.tax_report_pt_tax_vendas_notas_credito_normal_tag +DEL account.report.expression: l10n_pt.tax_report_pt_tax_vendas_notas_credito_reduzida_tag +NEW account.report.line: l10n_pt.trp_base +NEW account.report.line: l10n_pt.trp_base_1 +NEW account.report.line: l10n_pt.trp_base_10 +NEW account.report.line: l10n_pt.trp_base_12 +NEW account.report.line: l10n_pt.trp_base_14 +NEW account.report.line: l10n_pt.trp_base_15 +NEW account.report.line: l10n_pt.trp_base_16 +NEW account.report.line: l10n_pt.trp_base_18 +NEW account.report.line: l10n_pt.trp_base_3 +NEW account.report.line: l10n_pt.trp_base_5 +NEW account.report.line: l10n_pt.trp_base_7 +NEW account.report.line: l10n_pt.trp_base_8 +NEW account.report.line: l10n_pt.trp_base_9 +NEW account.report.line: l10n_pt.trp_base_section_1 +NEW account.report.line: l10n_pt.trp_base_total_90 +NEW account.report.line: l10n_pt.trp_quadro_06A +NEW account.report.line: l10n_pt.trp_quadro_06A_A +NEW account.report.line: l10n_pt.trp_quadro_06A_B +NEW account.report.line: l10n_pt.trp_tax_favor_company +NEW account.report.line: l10n_pt.trp_tax_favor_company5 +NEW account.report.line: l10n_pt.trp_tax_favor_company_20 +NEW account.report.line: l10n_pt.trp_tax_favor_company_21 +NEW account.report.line: l10n_pt.trp_tax_favor_company_22 +NEW account.report.line: l10n_pt.trp_tax_favor_company_23 +NEW account.report.line: l10n_pt.trp_tax_favor_company_24 +NEW account.report.line: l10n_pt.trp_tax_favor_company_40 +NEW account.report.line: l10n_pt.trp_tax_favor_company_61 +NEW account.report.line: l10n_pt.trp_tax_favor_company_65 +NEW account.report.line: l10n_pt.trp_tax_favor_company_67 +NEW account.report.line: l10n_pt.trp_tax_favor_company_total_91 +NEW account.report.line: l10n_pt.trp_tax_favor_state +NEW account.report.line: l10n_pt.trp_tax_favor_state_1 +NEW account.report.line: l10n_pt.trp_tax_favor_state_100 +NEW account.report.line: l10n_pt.trp_tax_favor_state_101 +NEW account.report.line: l10n_pt.trp_tax_favor_state_102 +NEW account.report.line: l10n_pt.trp_tax_favor_state_103 +NEW account.report.line: l10n_pt.trp_tax_favor_state_104 +NEW account.report.line: l10n_pt.trp_tax_favor_state_105 +NEW account.report.line: l10n_pt.trp_tax_favor_state_107 +NEW account.report.line: l10n_pt.trp_tax_favor_state_11 +NEW account.report.line: l10n_pt.trp_tax_favor_state_13 +NEW account.report.line: l10n_pt.trp_tax_favor_state_17 +NEW account.report.line: l10n_pt.trp_tax_favor_state_19 +NEW account.report.line: l10n_pt.trp_tax_favor_state_2 +NEW account.report.line: l10n_pt.trp_tax_favor_state_4 +NEW account.report.line: l10n_pt.trp_tax_favor_state_41 +NEW account.report.line: l10n_pt.trp_tax_favor_state_6 +NEW account.report.line: l10n_pt.trp_tax_favor_state_66 +NEW account.report.line: l10n_pt.trp_tax_favor_state_68 +NEW account.report.line: l10n_pt.trp_tax_favor_state_97 +NEW account.report.line: l10n_pt.trp_tax_favor_state_98 +NEW account.report.line: l10n_pt.trp_tax_favor_state_99 +NEW account.report.line: l10n_pt.trp_tax_favor_state_total_106 +NEW account.report.line: l10n_pt.trp_tax_favor_state_total_92 +NEW account.report.line: l10n_pt.trp_tax_favor_state_total_93 +NEW account.report.line: l10n_pt.trp_tax_favor_state_total_94 +NEW account.report.line: l10n_pt.trp_totais +DEL account.report.line: l10n_pt.tax_report_pt_base +DEL account.report.line: l10n_pt.tax_report_pt_base_despesas +DEL account.report.line: l10n_pt.tax_report_pt_base_despesas_faturas +DEL account.report.line: l10n_pt.tax_report_pt_base_despesas_faturas_intermedia +DEL account.report.line: l10n_pt.tax_report_pt_base_despesas_faturas_isento +DEL account.report.line: l10n_pt.tax_report_pt_base_despesas_faturas_normal +DEL account.report.line: l10n_pt.tax_report_pt_base_despesas_faturas_reduzida +DEL account.report.line: l10n_pt.tax_report_pt_base_despesas_notas_credito +DEL account.report.line: l10n_pt.tax_report_pt_base_despesas_notas_credito_intermedia +DEL account.report.line: l10n_pt.tax_report_pt_base_despesas_notas_credito_isento +DEL account.report.line: l10n_pt.tax_report_pt_base_despesas_notas_credito_normal +DEL account.report.line: l10n_pt.tax_report_pt_base_despesas_notas_credito_reduzida +DEL account.report.line: l10n_pt.tax_report_pt_base_vendas +DEL account.report.line: l10n_pt.tax_report_pt_base_vendas_faturas +DEL account.report.line: l10n_pt.tax_report_pt_base_vendas_faturas_intermedia +DEL account.report.line: l10n_pt.tax_report_pt_base_vendas_faturas_isento +DEL account.report.line: l10n_pt.tax_report_pt_base_vendas_faturas_normal +DEL account.report.line: l10n_pt.tax_report_pt_base_vendas_faturas_reduzida +DEL account.report.line: l10n_pt.tax_report_pt_base_vendas_notas_credito +DEL account.report.line: l10n_pt.tax_report_pt_base_vendas_notas_credito_intermedia +DEL account.report.line: l10n_pt.tax_report_pt_base_vendas_notas_credito_isento +DEL account.report.line: l10n_pt.tax_report_pt_base_vendas_notas_credito_normal +DEL account.report.line: l10n_pt.tax_report_pt_base_vendas_notas_credito_reduzida +DEL account.report.line: l10n_pt.tax_report_pt_iva +DEL account.report.line: l10n_pt.tax_report_pt_tax_despesas +DEL account.report.line: l10n_pt.tax_report_pt_tax_despesas_faturas +DEL account.report.line: l10n_pt.tax_report_pt_tax_despesas_faturas_intermedia +DEL account.report.line: l10n_pt.tax_report_pt_tax_despesas_faturas_isento +DEL account.report.line: l10n_pt.tax_report_pt_tax_despesas_faturas_normal +DEL account.report.line: l10n_pt.tax_report_pt_tax_despesas_faturas_reduzida +DEL account.report.line: l10n_pt.tax_report_pt_tax_despesas_notas_credito +DEL account.report.line: l10n_pt.tax_report_pt_tax_despesas_notas_credito_intermedia +DEL account.report.line: l10n_pt.tax_report_pt_tax_despesas_notas_credito_isento +DEL account.report.line: l10n_pt.tax_report_pt_tax_despesas_notas_credito_normal +DEL account.report.line: l10n_pt.tax_report_pt_tax_despesas_notas_credito_reduzida +DEL account.report.line: l10n_pt.tax_report_pt_tax_total_pagar +DEL account.report.line: l10n_pt.tax_report_pt_tax_total_receber +DEL account.report.line: l10n_pt.tax_report_pt_tax_vendas +DEL account.report.line: l10n_pt.tax_report_pt_tax_vendas_faturas +DEL account.report.line: l10n_pt.tax_report_pt_tax_vendas_faturas_intermedia +DEL account.report.line: l10n_pt.tax_report_pt_tax_vendas_faturas_isento +DEL account.report.line: l10n_pt.tax_report_pt_tax_vendas_faturas_normal +DEL account.report.line: l10n_pt.tax_report_pt_tax_vendas_faturas_reduzida +DEL account.report.line: l10n_pt.tax_report_pt_tax_vendas_notas_credito +DEL account.report.line: l10n_pt.tax_report_pt_tax_vendas_notas_credito_intermedia +DEL account.report.line: l10n_pt.tax_report_pt_tax_vendas_notas_credito_isento +DEL account.report.line: l10n_pt.tax_report_pt_tax_vendas_notas_credito_normal +DEL account.report.line: l10n_pt.tax_report_pt_tax_vendas_notas_credito_reduzida +# NOTHING TO DO: Enterprise accounting reporting engine + +DEL account.tax.group: l10n_pt.tax_group_iva_0 (noupdate) +DEL account.tax.group: l10n_pt.tax_group_iva_12 (noupdate) +DEL account.tax.group: l10n_pt.tax_group_iva_13 (noupdate) +DEL account.tax.group: l10n_pt.tax_group_iva_16 (noupdate) +DEL account.tax.group: l10n_pt.tax_group_iva_22 (noupdate) +DEL account.tax.group: l10n_pt.tax_group_iva_23 (noupdate) +DEL account.tax.group: l10n_pt.tax_group_iva_4 (noupdate) +DEL account.tax.group: l10n_pt.tax_group_iva_5 (noupdate) +DEL account.tax.group: l10n_pt.tax_group_iva_6 (noupdate) +DEL account.tax.group: l10n_pt.tax_group_iva_9 (noupdate) +# NOTHING TO DO: The xml id refactor is handled by account post-migration From f1bc4c25ee3c23756757f24d31bf75a936de0957 Mon Sep 17 00:00:00 2001 From: "Pedro M. Baeza" Date: Tue, 10 Feb 2026 09:16:26 +0100 Subject: [PATCH 32/71] [OU-IMP] hr: Private data use mobile On the private phone, we transfer the phone from the partner, and if not filled, the mobile. TT60883 --- openupgrade_scripts/scripts/hr/17.0.1.1/post-migration.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/openupgrade_scripts/scripts/hr/17.0.1.1/post-migration.py b/openupgrade_scripts/scripts/hr/17.0.1.1/post-migration.py index a4c676b8fdf0..693d4f1a72b9 100644 --- a/openupgrade_scripts/scripts/hr/17.0.1.1/post-migration.py +++ b/openupgrade_scripts/scripts/hr/17.0.1.1/post-migration.py @@ -28,7 +28,9 @@ def _transfer_employee_private_data(env): he.private_country_id, rpp.country_id, rp.country_id ), private_email = COALESCE(he.private_email, rpp.email, rp.email), - private_phone = COALESCE(he.private_phone, rpp.phone, rp.phone), + private_phone = COALESCE( + he.private_phone, rpp.phone, rpp.mobile, rp.phone, rp.mobile + ), private_state_id = COALESCE(he.private_state_id, rpp.state_id, rp.state_id), private_street = COALESCE(he.private_street, rpp.street, rp.street), private_street2 = COALESCE(he.private_street2, rpp.street2, rp.street2), From ddc887335085b82308072a43924fefdde8ca5948 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Ba=C3=B1=C3=B3n?= Date: Tue, 10 Feb 2026 13:07:46 +0100 Subject: [PATCH 33/71] [OU-ADD] product_email_template: Nothing to do TT59150 --- docsource/modules160-170.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docsource/modules160-170.rst b/docsource/modules160-170.rst index 399afb923a68..86ebb8bf2727 100644 --- a/docsource/modules160-170.rst +++ b/docsource/modules160-170.rst @@ -836,7 +836,7 @@ Module coverage 16.0 -> 17.0 +---------------------------------------------------+----------------------+-------------------------------------------------+ | product | Done | | +---------------------------------------------------+----------------------+-------------------------------------------------+ -| product_email_template | |No DB layout changes. | +| product_email_template | Nothing to do |No DB layout changes. | +---------------------------------------------------+----------------------+-------------------------------------------------+ | product_expiry | Nothing to do | | +---------------------------------------------------+----------------------+-------------------------------------------------+ From fae1e4bb5712437155847d175190bf49b54b6019 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Ba=C3=B1=C3=B3n?= Date: Tue, 10 Feb 2026 15:57:13 +0100 Subject: [PATCH 34/71] [OU-ADD] pos_discount: Nothing to do TT59138 --- docsource/modules160-170.rst | 2 +- .../scripts/pos_discount/17.0.1.0/upgrade_analysis.txt | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/docsource/modules160-170.rst b/docsource/modules160-170.rst index 399afb923a68..4309fc86efab 100644 --- a/docsource/modules160-170.rst +++ b/docsource/modules160-170.rst @@ -774,7 +774,7 @@ Module coverage 16.0 -> 17.0 +---------------------------------------------------+----------------------+-------------------------------------------------+ | |del| pos_daily_sales_reports | |Merged into point_of_sale. | +---------------------------------------------------+----------------------+-------------------------------------------------+ -| pos_discount | |No DB layout changes. | +| pos_discount | Nothing to do |No DB layout changes. | +---------------------------------------------------+----------------------+-------------------------------------------------+ | pos_epson_printer | Nothing to do | | +---------------------------------------------------+----------------------+-------------------------------------------------+ diff --git a/openupgrade_scripts/scripts/pos_discount/17.0.1.0/upgrade_analysis.txt b/openupgrade_scripts/scripts/pos_discount/17.0.1.0/upgrade_analysis.txt index 91e3ea4a90a0..6dd7044a4aa5 100644 --- a/openupgrade_scripts/scripts/pos_discount/17.0.1.0/upgrade_analysis.txt +++ b/openupgrade_scripts/scripts/pos_discount/17.0.1.0/upgrade_analysis.txt @@ -2,3 +2,4 @@ ---Fields in module 'pos_discount'--- ---XML records in module 'pos_discount'--- ---nothing has changed in this module-- +# NOTHING TO DO From cef29d9ccc7dcbb8d2cf01178b942ae83647127e Mon Sep 17 00:00:00 2001 From: christian-ramos-tecnativa Date: Thu, 19 Feb 2026 15:42:13 +0000 Subject: [PATCH 35/71] [OU-ADD] spreadsheet_dashboard: Asing new group to Settings users --- .../17.0.1.0/post-migration.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 openupgrade_scripts/scripts/spreadsheet_dashboard/17.0.1.0/post-migration.py diff --git a/openupgrade_scripts/scripts/spreadsheet_dashboard/17.0.1.0/post-migration.py b/openupgrade_scripts/scripts/spreadsheet_dashboard/17.0.1.0/post-migration.py new file mode 100644 index 000000000000..c96c4ea6bbc4 --- /dev/null +++ b/openupgrade_scripts/scripts/spreadsheet_dashboard/17.0.1.0/post-migration.py @@ -0,0 +1,18 @@ +# Copyright 2026 Tecnativa - Christian Ramos +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from openupgradelib import openupgrade + +from odoo import Command + + +@openupgrade.migrate() +def migrate(env, version): + group_system = env.ref("base.group_system", False) + group_dashboard_manager = env.ref( + "spreadsheet_dashboard.group_dashboard_manager", False + ) + if group_system and group_dashboard_manager: + group_system.users.write( + {"groups_id": [Command.link(group_dashboard_manager.id)]} + ) From 7f19134cf5ac7816dba8f0a901a44badb298f8d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Ba=C3=B1=C3=B3n?= Date: Mon, 23 Feb 2026 17:00:40 +0100 Subject: [PATCH 36/71] [OU-ADD] l10n_co: Migration scripts TT57833 --- .../scripts/l10n_co/17.0.0.9/pre-migration.py | 20 + .../17.0.0.9/upgrade_analysis_work.txt | 478 ++++++++++++++++++ 2 files changed, 498 insertions(+) create mode 100644 openupgrade_scripts/scripts/l10n_co/17.0.0.9/pre-migration.py create mode 100644 openupgrade_scripts/scripts/l10n_co/17.0.0.9/upgrade_analysis_work.txt diff --git a/openupgrade_scripts/scripts/l10n_co/17.0.0.9/pre-migration.py b/openupgrade_scripts/scripts/l10n_co/17.0.0.9/pre-migration.py new file mode 100644 index 000000000000..8a2d162e89af --- /dev/null +++ b/openupgrade_scripts/scripts/l10n_co/17.0.0.9/pre-migration.py @@ -0,0 +1,20 @@ +from openupgradelib import openupgrade + + +def _disable_obsolete_taxes(env): + """IN 17.0, some taxes are gone and need to be disabled""" + for xmlid in ["l10n_co_tax_3"]: + imds = env["ir.model.data"].search( + [ + ("module", "=", "account"), + ("model", "=", "account.tax"), + ("name", "=like", f"%_{xmlid}"), + ] + ) + taxes = env["account.tax"].browse(imds.mapped("record_id")) + taxes.active = False + + +@openupgrade.migrate() +def migrate(env, version): + _disable_obsolete_taxes(env) diff --git a/openupgrade_scripts/scripts/l10n_co/17.0.0.9/upgrade_analysis_work.txt b/openupgrade_scripts/scripts/l10n_co/17.0.0.9/upgrade_analysis_work.txt new file mode 100644 index 000000000000..c8af171f64b2 --- /dev/null +++ b/openupgrade_scripts/scripts/l10n_co/17.0.0.9/upgrade_analysis_work.txt @@ -0,0 +1,478 @@ +---Models in module 'l10n_co'--- +---Fields in module 'l10n_co'--- +---XML records in module 'l10n_co'--- +DEL account.account.template: l10n_co.co_puc_110505 +DEL account.account.template: l10n_co.co_puc_120535 +DEL account.account.template: l10n_co.co_puc_129595 +DEL account.account.template: l10n_co.co_puc_130505 +DEL account.account.template: l10n_co.co_puc_130507 +DEL account.account.template: l10n_co.co_puc_130510 +DEL account.account.template: l10n_co.co_puc_131010 +DEL account.account.template: l10n_co.co_puc_132510 +DEL account.account.template: l10n_co.co_puc_133005 +DEL account.account.template: l10n_co.co_puc_133010 +DEL account.account.template: l10n_co.co_puc_133015 +DEL account.account.template: l10n_co.co_puc_133505 +DEL account.account.template: l10n_co.co_puc_135505 +DEL account.account.template: l10n_co.co_puc_135510 +DEL account.account.template: l10n_co.co_puc_135515 +DEL account.account.template: l10n_co.co_puc_135517 +DEL account.account.template: l10n_co.co_puc_135518 +DEL account.account.template: l10n_co.co_puc_135520 +DEL account.account.template: l10n_co.co_puc_136005 +DEL account.account.template: l10n_co.co_puc_136010 +DEL account.account.template: l10n_co.co_puc_136015 +DEL account.account.template: l10n_co.co_puc_136515 +DEL account.account.template: l10n_co.co_puc_136525 +DEL account.account.template: l10n_co.co_puc_138095 +DEL account.account.template: l10n_co.co_puc_139005 +DEL account.account.template: l10n_co.co_puc_139905 +DEL account.account.template: l10n_co.co_puc_143005 +DEL account.account.template: l10n_co.co_puc_149905 +DEL account.account.template: l10n_co.co_puc_150405 +DEL account.account.template: l10n_co.co_puc_151605 +DEL account.account.template: l10n_co.co_puc_152099 +DEL account.account.template: l10n_co.co_puc_152405 +DEL account.account.template: l10n_co.co_puc_152499 +DEL account.account.template: l10n_co.co_puc_152805 +DEL account.account.template: l10n_co.co_puc_152899 +DEL account.account.template: l10n_co.co_puc_154005 +DEL account.account.template: l10n_co.co_puc_154008 +DEL account.account.template: l10n_co.co_puc_154020 +DEL account.account.template: l10n_co.co_puc_154040 +DEL account.account.template: l10n_co.co_puc_154099 +DEL account.account.template: l10n_co.co_puc_159205 +DEL account.account.template: l10n_co.co_puc_159210 +DEL account.account.template: l10n_co.co_puc_159215 +DEL account.account.template: l10n_co.co_puc_159220 +DEL account.account.template: l10n_co.co_puc_159235 +DEL account.account.template: l10n_co.co_puc_170520 +DEL account.account.template: l10n_co.co_puc_189510 +DEL account.account.template: l10n_co.co_puc_189515 +DEL account.account.template: l10n_co.co_puc_190505 +DEL account.account.template: l10n_co.co_puc_220505 +DEL account.account.template: l10n_co.co_puc_221005 +DEL account.account.template: l10n_co.co_puc_231505 +DEL account.account.template: l10n_co.co_puc_233550 +DEL account.account.template: l10n_co.co_puc_233560 +DEL account.account.template: l10n_co.co_puc_233570 +DEL account.account.template: l10n_co.co_puc_233595 +DEL account.account.template: l10n_co.co_puc_235510 +DEL account.account.template: l10n_co.co_puc_236005 +DEL account.account.template: l10n_co.co_puc_236505 +DEL account.account.template: l10n_co.co_puc_236510 +DEL account.account.template: l10n_co.co_puc_23651505 +DEL account.account.template: l10n_co.co_puc_23651510 +DEL account.account.template: l10n_co.co_puc_23651515 +DEL account.account.template: l10n_co.co_puc_23651520 +DEL account.account.template: l10n_co.co_puc_23652005 +DEL account.account.template: l10n_co.co_puc_23652010 +DEL account.account.template: l10n_co.co_puc_23652505 +DEL account.account.template: l10n_co.co_puc_23652510 +DEL account.account.template: l10n_co.co_puc_23652515 +DEL account.account.template: l10n_co.co_puc_23652520 +DEL account.account.template: l10n_co.co_puc_23652525 +DEL account.account.template: l10n_co.co_puc_23652530 +DEL account.account.template: l10n_co.co_puc_23652535 +DEL account.account.template: l10n_co.co_puc_23652540 +DEL account.account.template: l10n_co.co_puc_23652545 +DEL account.account.template: l10n_co.co_puc_23652550 +DEL account.account.template: l10n_co.co_puc_23653005 +DEL account.account.template: l10n_co.co_puc_23653010 +DEL account.account.template: l10n_co.co_puc_23653510 +DEL account.account.template: l10n_co.co_puc_23654005 +DEL account.account.template: l10n_co.co_puc_23654010 +DEL account.account.template: l10n_co.co_puc_23654015 +DEL account.account.template: l10n_co.co_puc_23654020 +DEL account.account.template: l10n_co.co_puc_23654025 +DEL account.account.template: l10n_co.co_puc_23654030 +DEL account.account.template: l10n_co.co_puc_23654035 +DEL account.account.template: l10n_co.co_puc_23654040 +DEL account.account.template: l10n_co.co_puc_23655005 +DEL account.account.template: l10n_co.co_puc_236575 +DEL account.account.template: l10n_co.co_puc_236705 +DEL account.account.template: l10n_co.co_puc_236805 +DEL account.account.template: l10n_co.co_puc_237005 +DEL account.account.template: l10n_co.co_puc_237006 +DEL account.account.template: l10n_co.co_puc_237010 +DEL account.account.template: l10n_co.co_puc_237025 +DEL account.account.template: l10n_co.co_puc_237030 +DEL account.account.template: l10n_co.co_puc_237035 +DEL account.account.template: l10n_co.co_puc_238030 +DEL account.account.template: l10n_co.co_puc_238095 +DEL account.account.template: l10n_co.co_puc_240405 +DEL account.account.template: l10n_co.co_puc_2408050505 +DEL account.account.template: l10n_co.co_puc_2408050510 +DEL account.account.template: l10n_co.co_puc_2408051005 +DEL account.account.template: l10n_co.co_puc_2408051010 +DEL account.account.template: l10n_co.co_puc_2408100505 +DEL account.account.template: l10n_co.co_puc_2408100510 +DEL account.account.template: l10n_co.co_puc_2408100515 +DEL account.account.template: l10n_co.co_puc_2408101005 +DEL account.account.template: l10n_co.co_puc_2408101010 +DEL account.account.template: l10n_co.co_puc_2408101015 +DEL account.account.template: l10n_co.co_puc_240820 +DEL account.account.template: l10n_co.co_puc_24082005 +DEL account.account.template: l10n_co.co_puc_241205 +DEL account.account.template: l10n_co.co_puc_245605 +DEL account.account.template: l10n_co.co_puc_249505 +DEL account.account.template: l10n_co.co_puc_249515 +DEL account.account.template: l10n_co.co_puc_249525 +DEL account.account.template: l10n_co.co_puc_250505 +DEL account.account.template: l10n_co.co_puc_251010 +DEL account.account.template: l10n_co.co_puc_251505 +DEL account.account.template: l10n_co.co_puc_252005 +DEL account.account.template: l10n_co.co_puc_252505 +DEL account.account.template: l10n_co.co_puc_261005 +DEL account.account.template: l10n_co.co_puc_261010 +DEL account.account.template: l10n_co.co_puc_261015 +DEL account.account.template: l10n_co.co_puc_261020 +DEL account.account.template: l10n_co.co_puc_261505 +DEL account.account.template: l10n_co.co_puc_261510 +DEL account.account.template: l10n_co.co_puc_280505 +DEL account.account.template: l10n_co.co_puc_280510 +DEL account.account.template: l10n_co.co_puc_280595 +DEL account.account.template: l10n_co.co_puc_310505 +DEL account.account.template: l10n_co.co_puc_310510 +DEL account.account.template: l10n_co.co_puc_320505 +DEL account.account.template: l10n_co.co_puc_330505 +DEL account.account.template: l10n_co.co_puc_340505 +DEL account.account.template: l10n_co.co_puc_340515 +DEL account.account.template: l10n_co.co_puc_340520 +DEL account.account.template: l10n_co.co_puc_360505 +DEL account.account.template: l10n_co.co_puc_370505 +DEL account.account.template: l10n_co.co_puc_413502 +DEL account.account.template: l10n_co.co_puc_413504 +DEL account.account.template: l10n_co.co_puc_413506 +DEL account.account.template: l10n_co.co_puc_413508 +DEL account.account.template: l10n_co.co_puc_413510 +DEL account.account.template: l10n_co.co_puc_413512 +DEL account.account.template: l10n_co.co_puc_413514 +DEL account.account.template: l10n_co.co_puc_413516 +DEL account.account.template: l10n_co.co_puc_413518 +DEL account.account.template: l10n_co.co_puc_413520 +DEL account.account.template: l10n_co.co_puc_413522 +DEL account.account.template: l10n_co.co_puc_413524 +DEL account.account.template: l10n_co.co_puc_413526 +DEL account.account.template: l10n_co.co_puc_413528 +DEL account.account.template: l10n_co.co_puc_413530 +DEL account.account.template: l10n_co.co_puc_413532 +DEL account.account.template: l10n_co.co_puc_413534 +DEL account.account.template: l10n_co.co_puc_413536 +DEL account.account.template: l10n_co.co_puc_413538 +DEL account.account.template: l10n_co.co_puc_413540 +DEL account.account.template: l10n_co.co_puc_413542 +DEL account.account.template: l10n_co.co_puc_413544 +DEL account.account.template: l10n_co.co_puc_413546 +DEL account.account.template: l10n_co.co_puc_413548 +DEL account.account.template: l10n_co.co_puc_413550 +DEL account.account.template: l10n_co.co_puc_413552 +DEL account.account.template: l10n_co.co_puc_413554 +DEL account.account.template: l10n_co.co_puc_413556 +DEL account.account.template: l10n_co.co_puc_413558 +DEL account.account.template: l10n_co.co_puc_413560 +DEL account.account.template: l10n_co.co_puc_413562 +DEL account.account.template: l10n_co.co_puc_413564 +DEL account.account.template: l10n_co.co_puc_413566 +DEL account.account.template: l10n_co.co_puc_413568 +DEL account.account.template: l10n_co.co_puc_413570 +DEL account.account.template: l10n_co.co_puc_413572 +DEL account.account.template: l10n_co.co_puc_413595 +DEL account.account.template: l10n_co.co_puc_415505 +DEL account.account.template: l10n_co.co_puc_421005 +DEL account.account.template: l10n_co.co_puc_421020 +DEL account.account.template: l10n_co.co_puc_421040 +DEL account.account.template: l10n_co.co_puc_423005 +DEL account.account.template: l10n_co.co_puc_423010 +DEL account.account.template: l10n_co.co_puc_423015 +DEL account.account.template: l10n_co.co_puc_423580 +DEL account.account.template: l10n_co.co_puc_425050 +DEL account.account.template: l10n_co.co_puc_425505 +DEL account.account.template: l10n_co.co_puc_429595 +DEL account.account.template: l10n_co.co_puc_510503 +DEL account.account.template: l10n_co.co_puc_510506 +DEL account.account.template: l10n_co.co_puc_510515 +DEL account.account.template: l10n_co.co_puc_510518 +DEL account.account.template: l10n_co.co_puc_510521 +DEL account.account.template: l10n_co.co_puc_510524 +DEL account.account.template: l10n_co.co_puc_510527 +DEL account.account.template: l10n_co.co_puc_510530 +DEL account.account.template: l10n_co.co_puc_510533 +DEL account.account.template: l10n_co.co_puc_510536 +DEL account.account.template: l10n_co.co_puc_510539 +DEL account.account.template: l10n_co.co_puc_510548 +DEL account.account.template: l10n_co.co_puc_510551 +DEL account.account.template: l10n_co.co_puc_510560 +DEL account.account.template: l10n_co.co_puc_510563 +DEL account.account.template: l10n_co.co_puc_510568 +DEL account.account.template: l10n_co.co_puc_510569 +DEL account.account.template: l10n_co.co_puc_510570 +DEL account.account.template: l10n_co.co_puc_510572 +DEL account.account.template: l10n_co.co_puc_510575 +DEL account.account.template: l10n_co.co_puc_510578 +DEL account.account.template: l10n_co.co_puc_510584 +DEL account.account.template: l10n_co.co_puc_510595 +DEL account.account.template: l10n_co.co_puc_511010 +DEL account.account.template: l10n_co.co_puc_511025 +DEL account.account.template: l10n_co.co_puc_511035 +DEL account.account.template: l10n_co.co_puc_511515 +DEL account.account.template: l10n_co.co_puc_511525 +DEL account.account.template: l10n_co.co_puc_511540 +DEL account.account.template: l10n_co.co_puc_511570 +DEL account.account.template: l10n_co.co_puc_511595 +DEL account.account.template: l10n_co.co_puc_512010 +DEL account.account.template: l10n_co.co_puc_512020 +DEL account.account.template: l10n_co.co_puc_512025 +DEL account.account.template: l10n_co.co_puc_512040 +DEL account.account.template: l10n_co.co_puc_512505 +DEL account.account.template: l10n_co.co_puc_512510 +DEL account.account.template: l10n_co.co_puc_513010 +DEL account.account.template: l10n_co.co_puc_513025 +DEL account.account.template: l10n_co.co_puc_513030 +DEL account.account.template: l10n_co.co_puc_513035 +DEL account.account.template: l10n_co.co_puc_513040 +DEL account.account.template: l10n_co.co_puc_513060 +DEL account.account.template: l10n_co.co_puc_513075 +DEL account.account.template: l10n_co.co_puc_513085 +DEL account.account.template: l10n_co.co_puc_513095 +DEL account.account.template: l10n_co.co_puc_513510 +DEL account.account.template: l10n_co.co_puc_513520 +DEL account.account.template: l10n_co.co_puc_513525 +DEL account.account.template: l10n_co.co_puc_513530 +DEL account.account.template: l10n_co.co_puc_513535 +DEL account.account.template: l10n_co.co_puc_513540 +DEL account.account.template: l10n_co.co_puc_513550 +DEL account.account.template: l10n_co.co_puc_513555 +DEL account.account.template: l10n_co.co_puc_513595 +DEL account.account.template: l10n_co.co_puc_514005 +DEL account.account.template: l10n_co.co_puc_514010 +DEL account.account.template: l10n_co.co_puc_514015 +DEL account.account.template: l10n_co.co_puc_514510 +DEL account.account.template: l10n_co.co_puc_514515 +DEL account.account.template: l10n_co.co_puc_514520 +DEL account.account.template: l10n_co.co_puc_514525 +DEL account.account.template: l10n_co.co_puc_514540 +DEL account.account.template: l10n_co.co_puc_515005 +DEL account.account.template: l10n_co.co_puc_515015 +DEL account.account.template: l10n_co.co_puc_515505 +DEL account.account.template: l10n_co.co_puc_515515 +DEL account.account.template: l10n_co.co_puc_515520 +DEL account.account.template: l10n_co.co_puc_516005 +DEL account.account.template: l10n_co.co_puc_516010 +DEL account.account.template: l10n_co.co_puc_516015 +DEL account.account.template: l10n_co.co_puc_516020 +DEL account.account.template: l10n_co.co_puc_516035 +DEL account.account.template: l10n_co.co_puc_516515 +DEL account.account.template: l10n_co.co_puc_519510 +DEL account.account.template: l10n_co.co_puc_519525 +DEL account.account.template: l10n_co.co_puc_519530 +DEL account.account.template: l10n_co.co_puc_519545 +DEL account.account.template: l10n_co.co_puc_519560 +DEL account.account.template: l10n_co.co_puc_519565 +DEL account.account.template: l10n_co.co_puc_520503 +DEL account.account.template: l10n_co.co_puc_520506 +DEL account.account.template: l10n_co.co_puc_520515 +DEL account.account.template: l10n_co.co_puc_520518 +DEL account.account.template: l10n_co.co_puc_520521 +DEL account.account.template: l10n_co.co_puc_520524 +DEL account.account.template: l10n_co.co_puc_520527 +DEL account.account.template: l10n_co.co_puc_520530 +DEL account.account.template: l10n_co.co_puc_520533 +DEL account.account.template: l10n_co.co_puc_520536 +DEL account.account.template: l10n_co.co_puc_520539 +DEL account.account.template: l10n_co.co_puc_520548 +DEL account.account.template: l10n_co.co_puc_520551 +DEL account.account.template: l10n_co.co_puc_520554 +DEL account.account.template: l10n_co.co_puc_520560 +DEL account.account.template: l10n_co.co_puc_520563 +DEL account.account.template: l10n_co.co_puc_520568 +DEL account.account.template: l10n_co.co_puc_520569 +DEL account.account.template: l10n_co.co_puc_520570 +DEL account.account.template: l10n_co.co_puc_520572 +DEL account.account.template: l10n_co.co_puc_520575 +DEL account.account.template: l10n_co.co_puc_520578 +DEL account.account.template: l10n_co.co_puc_520584 +DEL account.account.template: l10n_co.co_puc_520595 +DEL account.account.template: l10n_co.co_puc_521035 +DEL account.account.template: l10n_co.co_puc_521505 +DEL account.account.template: l10n_co.co_puc_521515 +DEL account.account.template: l10n_co.co_puc_521540 +DEL account.account.template: l10n_co.co_puc_521570 +DEL account.account.template: l10n_co.co_puc_521595 +DEL account.account.template: l10n_co.co_puc_522010 +DEL account.account.template: l10n_co.co_puc_522015 +DEL account.account.template: l10n_co.co_puc_522025 +DEL account.account.template: l10n_co.co_puc_522510 +DEL account.account.template: l10n_co.co_puc_523505 +DEL account.account.template: l10n_co.co_puc_523510 +DEL account.account.template: l10n_co.co_puc_523525 +DEL account.account.template: l10n_co.co_puc_523530 +DEL account.account.template: l10n_co.co_puc_523535 +DEL account.account.template: l10n_co.co_puc_523540 +DEL account.account.template: l10n_co.co_puc_523550 +DEL account.account.template: l10n_co.co_puc_523555 +DEL account.account.template: l10n_co.co_puc_523560 +DEL account.account.template: l10n_co.co_puc_523595 +DEL account.account.template: l10n_co.co_puc_524005 +DEL account.account.template: l10n_co.co_puc_524010 +DEL account.account.template: l10n_co.co_puc_524015 +DEL account.account.template: l10n_co.co_puc_524020 +DEL account.account.template: l10n_co.co_puc_524510 +DEL account.account.template: l10n_co.co_puc_524515 +DEL account.account.template: l10n_co.co_puc_524520 +DEL account.account.template: l10n_co.co_puc_524525 +DEL account.account.template: l10n_co.co_puc_524540 +DEL account.account.template: l10n_co.co_puc_525505 +DEL account.account.template: l10n_co.co_puc_525515 +DEL account.account.template: l10n_co.co_puc_525520 +DEL account.account.template: l10n_co.co_puc_529520 +DEL account.account.template: l10n_co.co_puc_529525 +DEL account.account.template: l10n_co.co_puc_529530 +DEL account.account.template: l10n_co.co_puc_529535 +DEL account.account.template: l10n_co.co_puc_529540 +DEL account.account.template: l10n_co.co_puc_529545 +DEL account.account.template: l10n_co.co_puc_529565 +DEL account.account.template: l10n_co.co_puc_529570 +DEL account.account.template: l10n_co.co_puc_529910 +DEL account.account.template: l10n_co.co_puc_529915 +DEL account.account.template: l10n_co.co_puc_530505 +DEL account.account.template: l10n_co.co_puc_530515 +DEL account.account.template: l10n_co.co_puc_530520 +DEL account.account.template: l10n_co.co_puc_530525 +DEL account.account.template: l10n_co.co_puc_530535 +DEL account.account.template: l10n_co.co_puc_530595 +DEL account.account.template: l10n_co.co_puc_531515 +DEL account.account.template: l10n_co.co_puc_531520 +DEL account.account.template: l10n_co.co_puc_531595 +DEL account.account.template: l10n_co.co_puc_539515 +DEL account.account.template: l10n_co.co_puc_539520 +DEL account.account.template: l10n_co.co_puc_539535 +DEL account.account.template: l10n_co.co_puc_539595 +DEL account.account.template: l10n_co.co_puc_540505 +DEL account.account.template: l10n_co.co_puc_590505 +DEL account.account.template: l10n_co.co_puc_613595 +DEL account.account.template: l10n_co.co_puc_614505 +DEL account.account.template: l10n_co.co_puc_614520 +DEL account.account.template: l10n_co.co_puc_615590 +DEL account.account.template: l10n_co.co_puc_811515 +DEL account.account.template: l10n_co.co_puc_831516 +DEL account.account.template: l10n_co.co_puc_831520 +DEL account.account.template: l10n_co.co_puc_831524 +DEL account.account.template: l10n_co.co_puc_831528 +DEL account.account.template: l10n_co.co_puc_831562 +DEL account.account.template: l10n_co.co_puc_911515 +DEL account.account.template: l10n_co.co_puc_911520 +DEL account.account.template: l10n_co.co_puc_912005 +DEL account.account.template: l10n_co.co_puc_912010 +DEL account.account.template: l10n_co.co_puc_912015 +DEL account.account.template: l10n_co.co_puc_912020 +DEL account.account.template: l10n_co.co_puc_939595 +DEL account.chart.template: l10n_co.l10n_co_chart_template_generic +# NOTHING TO DO: New CoA loading system + +DEL account.tax.group: l10n_co.tax_group_ar_ren_0 +DEL account.tax.group: l10n_co.tax_group_covered_goods +DEL account.tax.group: l10n_co.tax_group_cree_16 +DEL account.tax.group: l10n_co.tax_group_cree_4 +DEL account.tax.group: l10n_co.tax_group_cree_8 +DEL account.tax.group: l10n_co.tax_group_inc_16 +DEL account.tax.group: l10n_co.tax_group_inc_4 +DEL account.tax.group: l10n_co.tax_group_inc_8 +DEL account.tax.group: l10n_co.tax_group_iva_0 +DEL account.tax.group: l10n_co.tax_group_iva_075 +DEL account.tax.group: l10n_co.tax_group_iva_16 +DEL account.tax.group: l10n_co.tax_group_iva_19 +DEL account.tax.group: l10n_co.tax_group_iva_2 +DEL account.tax.group: l10n_co.tax_group_iva_204 +DEL account.tax.group: l10n_co.tax_group_iva_4 +DEL account.tax.group: l10n_co.tax_group_iva_5 +DEL account.tax.group: l10n_co.tax_group_iva_8 +DEL account.tax.group: l10n_co.tax_group_r_ica_0 +DEL account.tax.group: l10n_co.tax_group_r_ica_0414 +DEL account.tax.group: l10n_co.tax_group_r_ica_069 +DEL account.tax.group: l10n_co.tax_group_r_ica_0966 +DEL account.tax.group: l10n_co.tax_group_r_ica_1104 +DEL account.tax.group: l10n_co.tax_group_r_ica_138 +DEL account.tax.group: l10n_co.tax_group_r_iva_075 +DEL account.tax.group: l10n_co.tax_group_r_iva_16 +DEL account.tax.group: l10n_co.tax_group_r_iva_24 +DEL account.tax.group: l10n_co.tax_group_r_iva_285 +DEL account.tax.group: l10n_co.tax_group_r_ren_0 +DEL account.tax.group: l10n_co.tax_group_r_ren_01 +DEL account.tax.group: l10n_co.tax_group_r_ren_05 +DEL account.tax.group: l10n_co.tax_group_r_ren_1 +DEL account.tax.group: l10n_co.tax_group_r_ren_10 +DEL account.tax.group: l10n_co.tax_group_r_ren_11 +DEL account.tax.group: l10n_co.tax_group_r_ren_15 +DEL account.tax.group: l10n_co.tax_group_r_ren_2 +DEL account.tax.group: l10n_co.tax_group_r_ren_20 +DEL account.tax.group: l10n_co.tax_group_r_ren_25 +DEL account.tax.group: l10n_co.tax_group_r_ren_3 +DEL account.tax.group: l10n_co.tax_group_r_ren_33 +DEL account.tax.group: l10n_co.tax_group_r_ren_35 +DEL account.tax.group: l10n_co.tax_group_r_ren_4 +DEL account.tax.group: l10n_co.tax_group_r_ren_6 +DEL account.tax.group: l10n_co.tax_group_r_ren_7 +# NOTHING TO DO: The xml id refactor is handled by account post-migration + +DEL account.tax.template: l10n_co.l10n_co_tax_0 +DEL account.tax.template: l10n_co.l10n_co_tax_1 +DEL account.tax.template: l10n_co.l10n_co_tax_10 +DEL account.tax.template: l10n_co.l10n_co_tax_11 +DEL account.tax.template: l10n_co.l10n_co_tax_12 +DEL account.tax.template: l10n_co.l10n_co_tax_13 +DEL account.tax.template: l10n_co.l10n_co_tax_14 +DEL account.tax.template: l10n_co.l10n_co_tax_15 +DEL account.tax.template: l10n_co.l10n_co_tax_16 +DEL account.tax.template: l10n_co.l10n_co_tax_17 +DEL account.tax.template: l10n_co.l10n_co_tax_18 +DEL account.tax.template: l10n_co.l10n_co_tax_19 +DEL account.tax.template: l10n_co.l10n_co_tax_2 +DEL account.tax.template: l10n_co.l10n_co_tax_20 +DEL account.tax.template: l10n_co.l10n_co_tax_21 +DEL account.tax.template: l10n_co.l10n_co_tax_22 +DEL account.tax.template: l10n_co.l10n_co_tax_23 +DEL account.tax.template: l10n_co.l10n_co_tax_24 +DEL account.tax.template: l10n_co.l10n_co_tax_25 +DEL account.tax.template: l10n_co.l10n_co_tax_26 +DEL account.tax.template: l10n_co.l10n_co_tax_27 +DEL account.tax.template: l10n_co.l10n_co_tax_28 +DEL account.tax.template: l10n_co.l10n_co_tax_29 +DEL account.tax.template: l10n_co.l10n_co_tax_3 +DEL account.tax.template: l10n_co.l10n_co_tax_30 +DEL account.tax.template: l10n_co.l10n_co_tax_31 +DEL account.tax.template: l10n_co.l10n_co_tax_32 +DEL account.tax.template: l10n_co.l10n_co_tax_33 +DEL account.tax.template: l10n_co.l10n_co_tax_34 +DEL account.tax.template: l10n_co.l10n_co_tax_35 +DEL account.tax.template: l10n_co.l10n_co_tax_36 +DEL account.tax.template: l10n_co.l10n_co_tax_37 +DEL account.tax.template: l10n_co.l10n_co_tax_38 +DEL account.tax.template: l10n_co.l10n_co_tax_39 +DEL account.tax.template: l10n_co.l10n_co_tax_4 +DEL account.tax.template: l10n_co.l10n_co_tax_40 +DEL account.tax.template: l10n_co.l10n_co_tax_41 +DEL account.tax.template: l10n_co.l10n_co_tax_42 +DEL account.tax.template: l10n_co.l10n_co_tax_43 +DEL account.tax.template: l10n_co.l10n_co_tax_44 +DEL account.tax.template: l10n_co.l10n_co_tax_45 +DEL account.tax.template: l10n_co.l10n_co_tax_46 +DEL account.tax.template: l10n_co.l10n_co_tax_47 +DEL account.tax.template: l10n_co.l10n_co_tax_48 +DEL account.tax.template: l10n_co.l10n_co_tax_49 +DEL account.tax.template: l10n_co.l10n_co_tax_5 +DEL account.tax.template: l10n_co.l10n_co_tax_50 +DEL account.tax.template: l10n_co.l10n_co_tax_51 +DEL account.tax.template: l10n_co.l10n_co_tax_52 +DEL account.tax.template: l10n_co.l10n_co_tax_53 +DEL account.tax.template: l10n_co.l10n_co_tax_54 +DEL account.tax.template: l10n_co.l10n_co_tax_55 +DEL account.tax.template: l10n_co.l10n_co_tax_56 +DEL account.tax.template: l10n_co.l10n_co_tax_57 +DEL account.tax.template: l10n_co.l10n_co_tax_58 +DEL account.tax.template: l10n_co.l10n_co_tax_6 +DEL account.tax.template: l10n_co.l10n_co_tax_7 +DEL account.tax.template: l10n_co.l10n_co_tax_8 +DEL account.tax.template: l10n_co.l10n_co_tax_9 +DEL account.tax.template: l10n_co.l10n_co_tax_covered_goods +# NOTHING TO DO: New CoA loading system From 8713ed9c457067670796f0475c1d3c2eb07400d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Ba=C3=B1=C3=B3n?= Date: Mon, 23 Feb 2026 17:56:39 +0100 Subject: [PATCH 37/71] [OU-ADD] l10n_pe: Migration scripts TT57841 --- docsource/modules160-170.rst | 2 +- .../scripts/l10n_pe/17.0.3.0/pre-migration.py | 40 + .../17.0.3.0/upgrade_analysis_work.txt | 1381 +++++++++++++++++ 3 files changed, 1422 insertions(+), 1 deletion(-) create mode 100644 openupgrade_scripts/scripts/l10n_pe/17.0.3.0/pre-migration.py create mode 100644 openupgrade_scripts/scripts/l10n_pe/17.0.3.0/upgrade_analysis_work.txt diff --git a/docsource/modules160-170.rst b/docsource/modules160-170.rst index 8845cd7867bd..635ecc3a8b8a 100644 --- a/docsource/modules160-170.rst +++ b/docsource/modules160-170.rst @@ -544,7 +544,7 @@ Module coverage 16.0 -> 17.0 +---------------------------------------------------+----------------------+-------------------------------------------------+ | l10n_pa | | | +---------------------------------------------------+----------------------+-------------------------------------------------+ -| l10n_pe | | | +| l10n_pe | Done | | +---------------------------------------------------+----------------------+-------------------------------------------------+ | |new| l10n_pe_pos | | | +---------------------------------------------------+----------------------+-------------------------------------------------+ diff --git a/openupgrade_scripts/scripts/l10n_pe/17.0.3.0/pre-migration.py b/openupgrade_scripts/scripts/l10n_pe/17.0.3.0/pre-migration.py new file mode 100644 index 000000000000..d66e62edc776 --- /dev/null +++ b/openupgrade_scripts/scripts/l10n_pe/17.0.3.0/pre-migration.py @@ -0,0 +1,40 @@ +# Copyright 2026 Tecnativa - David Bañón Gil +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). +from openupgradelib import openupgrade + + +def _remove_xml_id_account_fiscal_position(env): + """In 17.0 account.fiscal.position.tax and account.fiscal.position.account don't + have xml_id, so let's remove it for companies with this CoA. + """ + for company in ( + env["res.company"] + .with_context(active_test=False) + .search([("chart_template", "=", "pe")]) + ): + openupgrade.logged_query( + env.cr, + f""" + DELETE FROM ir_model_data + WHERE module='l10n_pe' + AND model IN ( + 'account.fiscal.position.tax', 'account.fiscal.position.account' + ) AND name LIKE '{company.id}_%' + """, + ) + # Also remove xmlids for fiscal position templates + openupgrade.logged_query( + env.cr, + """ + DELETE FROM ir_model_data + WHERE module='l10n_pe' + AND model IN ( + 'account.fiscal.position.template', 'account.fiscal.position.tax.template' + ) + """, + ) + + +@openupgrade.migrate() +def migrate(env, version): + _remove_xml_id_account_fiscal_position(env) diff --git a/openupgrade_scripts/scripts/l10n_pe/17.0.3.0/upgrade_analysis_work.txt b/openupgrade_scripts/scripts/l10n_pe/17.0.3.0/upgrade_analysis_work.txt new file mode 100644 index 000000000000..d37746af9315 --- /dev/null +++ b/openupgrade_scripts/scripts/l10n_pe/17.0.3.0/upgrade_analysis_work.txt @@ -0,0 +1,1381 @@ +---Models in module 'l10n_pe'--- +---Fields in module 'l10n_pe'--- +l10n_pe / account.tax.template / l10n_pe_edi_isc_type (selection): DEL selection_keys: ['01', '02', '03'] +l10n_pe / account.tax.template / l10n_pe_edi_tax_code (selection): DEL selection_keys: ['1000', '1016', '2000', '7152', '9995', '9996', '9997', '9998', '9999'] +l10n_pe / account.tax.template / l10n_pe_edi_unece_category (selection): DEL selection_keys: ['E', 'G', 'O', 'S', 'Z'] +# NOTHING TO DO: account.tax.template no longer exists + +---XML records in module 'l10n_pe'--- +DEL account.account.template: l10n_pe.chart0111 +DEL account.account.template: l10n_pe.chart0112 +DEL account.account.template: l10n_pe.chart0113 +DEL account.account.template: l10n_pe.chart0114 +DEL account.account.template: l10n_pe.chart0126 +DEL account.account.template: l10n_pe.chart0127 +DEL account.account.template: l10n_pe.chart0128 +DEL account.account.template: l10n_pe.chart0129 +DEL account.account.template: l10n_pe.chart0211 +DEL account.account.template: l10n_pe.chart0213 +DEL account.account.template: l10n_pe.chart0214 +DEL account.account.template: l10n_pe.chart0215 +DEL account.account.template: l10n_pe.chart0226 +DEL account.account.template: l10n_pe.chart0227 +DEL account.account.template: l10n_pe.chart0228 +DEL account.account.template: l10n_pe.chart0229 +DEL account.account.template: l10n_pe.chart101 +DEL account.account.template: l10n_pe.chart102 +DEL account.account.template: l10n_pe.chart1031 +DEL account.account.template: l10n_pe.chart1032 +DEL account.account.template: l10n_pe.chart1041 +DEL account.account.template: l10n_pe.chart1042 +DEL account.account.template: l10n_pe.chart1051 +DEL account.account.template: l10n_pe.chart1061 +DEL account.account.template: l10n_pe.chart1062 +DEL account.account.template: l10n_pe.chart1071 +DEL account.account.template: l10n_pe.chart1072 +DEL account.account.template: l10n_pe.chart1073 +DEL account.account.template: l10n_pe.chart11111 +DEL account.account.template: l10n_pe.chart11112 +DEL account.account.template: l10n_pe.chart11121 +DEL account.account.template: l10n_pe.chart11122 +DEL account.account.template: l10n_pe.chart11131 +DEL account.account.template: l10n_pe.chart11132 +DEL account.account.template: l10n_pe.chart11141 +DEL account.account.template: l10n_pe.chart11142 +DEL account.account.template: l10n_pe.chart11151 +DEL account.account.template: l10n_pe.chart11152 +DEL account.account.template: l10n_pe.chart11211 +DEL account.account.template: l10n_pe.chart11212 +DEL account.account.template: l10n_pe.chart11311 +DEL account.account.template: l10n_pe.chart11312 +DEL account.account.template: l10n_pe.chart11321 +DEL account.account.template: l10n_pe.chart11322 +DEL account.account.template: l10n_pe.chart1211 +DEL account.account.template: l10n_pe.chart1212 +DEL account.account.template: l10n_pe.chart1213 +DEL account.account.template: l10n_pe.chart1214 +DEL account.account.template: l10n_pe.chart1215 +DEL account.account.template: l10n_pe.chart122 +DEL account.account.template: l10n_pe.chart1232 +DEL account.account.template: l10n_pe.chart1233 +DEL account.account.template: l10n_pe.chart1234 +DEL account.account.template: l10n_pe.chart1311 +DEL account.account.template: l10n_pe.chart1312 +DEL account.account.template: l10n_pe.chart1313 +DEL account.account.template: l10n_pe.chart1314 +DEL account.account.template: l10n_pe.chart1321 +DEL account.account.template: l10n_pe.chart1331 +DEL account.account.template: l10n_pe.chart1332 +DEL account.account.template: l10n_pe.chart1333 +DEL account.account.template: l10n_pe.chart1411 +DEL account.account.template: l10n_pe.chart1412 +DEL account.account.template: l10n_pe.chart1413 +DEL account.account.template: l10n_pe.chart1419 +DEL account.account.template: l10n_pe.chart1421 +DEL account.account.template: l10n_pe.chart1422 +DEL account.account.template: l10n_pe.chart1431 +DEL account.account.template: l10n_pe.chart1432 +DEL account.account.template: l10n_pe.chart1433 +DEL account.account.template: l10n_pe.chart149 +DEL account.account.template: l10n_pe.chart1611 +DEL account.account.template: l10n_pe.chart1612 +DEL account.account.template: l10n_pe.chart1621 +DEL account.account.template: l10n_pe.chart1622 +DEL account.account.template: l10n_pe.chart1623 +DEL account.account.template: l10n_pe.chart1624 +DEL account.account.template: l10n_pe.chart1629 +DEL account.account.template: l10n_pe.chart1631 +DEL account.account.template: l10n_pe.chart1632 +DEL account.account.template: l10n_pe.chart1633 +DEL account.account.template: l10n_pe.chart1641 +DEL account.account.template: l10n_pe.chart1642 +DEL account.account.template: l10n_pe.chart1643 +DEL account.account.template: l10n_pe.chart1649 +DEL account.account.template: l10n_pe.chart1651 +DEL account.account.template: l10n_pe.chart1652 +DEL account.account.template: l10n_pe.chart1653 +DEL account.account.template: l10n_pe.chart1654 +DEL account.account.template: l10n_pe.chart1655 +DEL account.account.template: l10n_pe.chart1659 +DEL account.account.template: l10n_pe.chart16611 +DEL account.account.template: l10n_pe.chart16612 +DEL account.account.template: l10n_pe.chart16621 +DEL account.account.template: l10n_pe.chart16622 +DEL account.account.template: l10n_pe.chart1671 +DEL account.account.template: l10n_pe.chart1672 +DEL account.account.template: l10n_pe.chart1673 +DEL account.account.template: l10n_pe.chart1674 +DEL account.account.template: l10n_pe.chart1675 +DEL account.account.template: l10n_pe.chart1691 +DEL account.account.template: l10n_pe.chart1699 +DEL account.account.template: l10n_pe.chart1711 +DEL account.account.template: l10n_pe.chart1712 +DEL account.account.template: l10n_pe.chart1731 +DEL account.account.template: l10n_pe.chart1732 +DEL account.account.template: l10n_pe.chart1733 +DEL account.account.template: l10n_pe.chart1741 +DEL account.account.template: l10n_pe.chart1742 +DEL account.account.template: l10n_pe.chart1743 +DEL account.account.template: l10n_pe.chart1749 +DEL account.account.template: l10n_pe.chart1751 +DEL account.account.template: l10n_pe.chart1752 +DEL account.account.template: l10n_pe.chart1753 +DEL account.account.template: l10n_pe.chart1754 +DEL account.account.template: l10n_pe.chart1755 +DEL account.account.template: l10n_pe.chart1759 +DEL account.account.template: l10n_pe.chart17611 +DEL account.account.template: l10n_pe.chart17612 +DEL account.account.template: l10n_pe.chart17621 +DEL account.account.template: l10n_pe.chart17622 +DEL account.account.template: l10n_pe.chart179 +DEL account.account.template: l10n_pe.chart181 +DEL account.account.template: l10n_pe.chart182 +DEL account.account.template: l10n_pe.chart183 +DEL account.account.template: l10n_pe.chart184 +DEL account.account.template: l10n_pe.chart185 +DEL account.account.template: l10n_pe.chart189 +DEL account.account.template: l10n_pe.chart1911 +DEL account.account.template: l10n_pe.chart1913 +DEL account.account.template: l10n_pe.chart1921 +DEL account.account.template: l10n_pe.chart1923 +DEL account.account.template: l10n_pe.chart1931 +DEL account.account.template: l10n_pe.chart1932 +DEL account.account.template: l10n_pe.chart1933 +DEL account.account.template: l10n_pe.chart1939 +DEL account.account.template: l10n_pe.chart1941 +DEL account.account.template: l10n_pe.chart1942 +DEL account.account.template: l10n_pe.chart1943 +DEL account.account.template: l10n_pe.chart1944 +DEL account.account.template: l10n_pe.chart1945 +DEL account.account.template: l10n_pe.chart1946 +DEL account.account.template: l10n_pe.chart1949 +DEL account.account.template: l10n_pe.chart1951 +DEL account.account.template: l10n_pe.chart1953 +DEL account.account.template: l10n_pe.chart1954 +DEL account.account.template: l10n_pe.chart1955 +DEL account.account.template: l10n_pe.chart1956 +DEL account.account.template: l10n_pe.chart1959 +DEL account.account.template: l10n_pe.chart20111 +DEL account.account.template: l10n_pe.chart20114 +DEL account.account.template: l10n_pe.chart21111 +DEL account.account.template: l10n_pe.chart21113 +DEL account.account.template: l10n_pe.chart21114 +DEL account.account.template: l10n_pe.chart21511 +DEL account.account.template: l10n_pe.chart221 +DEL account.account.template: l10n_pe.chart222 +DEL account.account.template: l10n_pe.chart23111 +DEL account.account.template: l10n_pe.chart23113 +DEL account.account.template: l10n_pe.chart23511 +DEL account.account.template: l10n_pe.chart24111 +DEL account.account.template: l10n_pe.chart24114 +DEL account.account.template: l10n_pe.chart251 +DEL account.account.template: l10n_pe.chart2521 +DEL account.account.template: l10n_pe.chart2522 +DEL account.account.template: l10n_pe.chart2523 +DEL account.account.template: l10n_pe.chart2524 +DEL account.account.template: l10n_pe.chart253 +DEL account.account.template: l10n_pe.chart261 +DEL account.account.template: l10n_pe.chart262 +DEL account.account.template: l10n_pe.chart27111 +DEL account.account.template: l10n_pe.chart27112 +DEL account.account.template: l10n_pe.chart27114 +DEL account.account.template: l10n_pe.chart27121 +DEL account.account.template: l10n_pe.chart27122 +DEL account.account.template: l10n_pe.chart27123 +DEL account.account.template: l10n_pe.chart27124 +DEL account.account.template: l10n_pe.chart27201 +DEL account.account.template: l10n_pe.chart27202 +DEL account.account.template: l10n_pe.chart27203 +DEL account.account.template: l10n_pe.chart27204 +DEL account.account.template: l10n_pe.chart27211 +DEL account.account.template: l10n_pe.chart27212 +DEL account.account.template: l10n_pe.chart27213 +DEL account.account.template: l10n_pe.chart27214 +DEL account.account.template: l10n_pe.chart27221 +DEL account.account.template: l10n_pe.chart27222 +DEL account.account.template: l10n_pe.chart27231 +DEL account.account.template: l10n_pe.chart27232 +DEL account.account.template: l10n_pe.chart27233 +DEL account.account.template: l10n_pe.chart27241 +DEL account.account.template: l10n_pe.chart27242 +DEL account.account.template: l10n_pe.chart27243 +DEL account.account.template: l10n_pe.chart27251 +DEL account.account.template: l10n_pe.chart27252 +DEL account.account.template: l10n_pe.chart27261 +DEL account.account.template: l10n_pe.chart27262 +DEL account.account.template: l10n_pe.chart27271 +DEL account.account.template: l10n_pe.chart27272 +DEL account.account.template: l10n_pe.chart27281 +DEL account.account.template: l10n_pe.chart27282 +DEL account.account.template: l10n_pe.chart27291 +DEL account.account.template: l10n_pe.chart27292 +DEL account.account.template: l10n_pe.chart27311 +DEL account.account.template: l10n_pe.chart27312 +DEL account.account.template: l10n_pe.chart27321 +DEL account.account.template: l10n_pe.chart27322 +DEL account.account.template: l10n_pe.chart27331 +DEL account.account.template: l10n_pe.chart27332 +DEL account.account.template: l10n_pe.chart27341 +DEL account.account.template: l10n_pe.chart27342 +DEL account.account.template: l10n_pe.chart27351 +DEL account.account.template: l10n_pe.chart27352 +DEL account.account.template: l10n_pe.chart27391 +DEL account.account.template: l10n_pe.chart27392 +DEL account.account.template: l10n_pe.chart27411 +DEL account.account.template: l10n_pe.chart27413 +DEL account.account.template: l10n_pe.chart27414 +DEL account.account.template: l10n_pe.chart27421 +DEL account.account.template: l10n_pe.chart27423 +DEL account.account.template: l10n_pe.chart27424 +DEL account.account.template: l10n_pe.chart27521 +DEL account.account.template: l10n_pe.chart27522 +DEL account.account.template: l10n_pe.chart27523 +DEL account.account.template: l10n_pe.chart27601 +DEL account.account.template: l10n_pe.chart27602 +DEL account.account.template: l10n_pe.chart27603 +DEL account.account.template: l10n_pe.chart27604 +DEL account.account.template: l10n_pe.chart27621 +DEL account.account.template: l10n_pe.chart27622 +DEL account.account.template: l10n_pe.chart27623 +DEL account.account.template: l10n_pe.chart27631 +DEL account.account.template: l10n_pe.chart27632 +DEL account.account.template: l10n_pe.chart27633 +DEL account.account.template: l10n_pe.chart27641 +DEL account.account.template: l10n_pe.chart27642 +DEL account.account.template: l10n_pe.chart27651 +DEL account.account.template: l10n_pe.chart27652 +DEL account.account.template: l10n_pe.chart27661 +DEL account.account.template: l10n_pe.chart27662 +DEL account.account.template: l10n_pe.chart27671 +DEL account.account.template: l10n_pe.chart27672 +DEL account.account.template: l10n_pe.chart27711 +DEL account.account.template: l10n_pe.chart27712 +DEL account.account.template: l10n_pe.chart27721 +DEL account.account.template: l10n_pe.chart27722 +DEL account.account.template: l10n_pe.chart27731 +DEL account.account.template: l10n_pe.chart27732 +DEL account.account.template: l10n_pe.chart27741 +DEL account.account.template: l10n_pe.chart27742 +DEL account.account.template: l10n_pe.chart27751 +DEL account.account.template: l10n_pe.chart27752 +DEL account.account.template: l10n_pe.chart27791 +DEL account.account.template: l10n_pe.chart27792 +DEL account.account.template: l10n_pe.chart27811 +DEL account.account.template: l10n_pe.chart27813 +DEL account.account.template: l10n_pe.chart27821 +DEL account.account.template: l10n_pe.chart27823 +DEL account.account.template: l10n_pe.chart27910 +DEL account.account.template: l10n_pe.chart27911 +DEL account.account.template: l10n_pe.chart27912 +DEL account.account.template: l10n_pe.chart27913 +DEL account.account.template: l10n_pe.chart27930 +DEL account.account.template: l10n_pe.chart27931 +DEL account.account.template: l10n_pe.chart27932 +DEL account.account.template: l10n_pe.chart27933 +DEL account.account.template: l10n_pe.chart27934 +DEL account.account.template: l10n_pe.chart27935 +DEL account.account.template: l10n_pe.chart27936 +DEL account.account.template: l10n_pe.chart27937 +DEL account.account.template: l10n_pe.chart27938 +DEL account.account.template: l10n_pe.chart27941 +DEL account.account.template: l10n_pe.chart27942 +DEL account.account.template: l10n_pe.chart27943 +DEL account.account.template: l10n_pe.chart27944 +DEL account.account.template: l10n_pe.chart27945 +DEL account.account.template: l10n_pe.chart27949 +DEL account.account.template: l10n_pe.chart27951 +DEL account.account.template: l10n_pe.chart27952 +DEL account.account.template: l10n_pe.chart281 +DEL account.account.template: l10n_pe.chart284 +DEL account.account.template: l10n_pe.chart285 +DEL account.account.template: l10n_pe.chart286 +DEL account.account.template: l10n_pe.chart29111 +DEL account.account.template: l10n_pe.chart29211 +DEL account.account.template: l10n_pe.chart29213 +DEL account.account.template: l10n_pe.chart29251 +DEL account.account.template: l10n_pe.chart2931 +DEL account.account.template: l10n_pe.chart2932 +DEL account.account.template: l10n_pe.chart29411 +DEL account.account.template: l10n_pe.chart29413 +DEL account.account.template: l10n_pe.chart2945 +DEL account.account.template: l10n_pe.chart29511 +DEL account.account.template: l10n_pe.chart2961 +DEL account.account.template: l10n_pe.chart2962 +DEL account.account.template: l10n_pe.chart2963 +DEL account.account.template: l10n_pe.chart2971 +DEL account.account.template: l10n_pe.chart2972 +DEL account.account.template: l10n_pe.chart2981 +DEL account.account.template: l10n_pe.chart2982 +DEL account.account.template: l10n_pe.chart2983 +DEL account.account.template: l10n_pe.chart2984 +DEL account.account.template: l10n_pe.chart30111 +DEL account.account.template: l10n_pe.chart30114 +DEL account.account.template: l10n_pe.chart3021 +DEL account.account.template: l10n_pe.chart30221 +DEL account.account.template: l10n_pe.chart30224 +DEL account.account.template: l10n_pe.chart30225 +DEL account.account.template: l10n_pe.chart30231 +DEL account.account.template: l10n_pe.chart30234 +DEL account.account.template: l10n_pe.chart30235 +DEL account.account.template: l10n_pe.chart30241 +DEL account.account.template: l10n_pe.chart30244 +DEL account.account.template: l10n_pe.chart30245 +DEL account.account.template: l10n_pe.chart30281 +DEL account.account.template: l10n_pe.chart30284 +DEL account.account.template: l10n_pe.chart30285 +DEL account.account.template: l10n_pe.chart30311 +DEL account.account.template: l10n_pe.chart30314 +DEL account.account.template: l10n_pe.chart30321 +DEL account.account.template: l10n_pe.chart30324 +DEL account.account.template: l10n_pe.chart30411 +DEL account.account.template: l10n_pe.chart30414 +DEL account.account.template: l10n_pe.chart30415 +DEL account.account.template: l10n_pe.chart30421 +DEL account.account.template: l10n_pe.chart30424 +DEL account.account.template: l10n_pe.chart30425 +DEL account.account.template: l10n_pe.chart30811 +DEL account.account.template: l10n_pe.chart30814 +DEL account.account.template: l10n_pe.chart30821 +DEL account.account.template: l10n_pe.chart30824 +DEL account.account.template: l10n_pe.chart31111 +DEL account.account.template: l10n_pe.chart31112 +DEL account.account.template: l10n_pe.chart31114 +DEL account.account.template: l10n_pe.chart31121 +DEL account.account.template: l10n_pe.chart31122 +DEL account.account.template: l10n_pe.chart31124 +DEL account.account.template: l10n_pe.chart31211 +DEL account.account.template: l10n_pe.chart31212 +DEL account.account.template: l10n_pe.chart31213 +DEL account.account.template: l10n_pe.chart31214 +DEL account.account.template: l10n_pe.chart31311 +DEL account.account.template: l10n_pe.chart31312 +DEL account.account.template: l10n_pe.chart31313 +DEL account.account.template: l10n_pe.chart31314 +DEL account.account.template: l10n_pe.chart32111 +DEL account.account.template: l10n_pe.chart32112 +DEL account.account.template: l10n_pe.chart32114 +DEL account.account.template: l10n_pe.chart32121 +DEL account.account.template: l10n_pe.chart32122 +DEL account.account.template: l10n_pe.chart32123 +DEL account.account.template: l10n_pe.chart32124 +DEL account.account.template: l10n_pe.chart32201 +DEL account.account.template: l10n_pe.chart32202 +DEL account.account.template: l10n_pe.chart32203 +DEL account.account.template: l10n_pe.chart32211 +DEL account.account.template: l10n_pe.chart32212 +DEL account.account.template: l10n_pe.chart32213 +DEL account.account.template: l10n_pe.chart32221 +DEL account.account.template: l10n_pe.chart32222 +DEL account.account.template: l10n_pe.chart32231 +DEL account.account.template: l10n_pe.chart32232 +DEL account.account.template: l10n_pe.chart32233 +DEL account.account.template: l10n_pe.chart32241 +DEL account.account.template: l10n_pe.chart32242 +DEL account.account.template: l10n_pe.chart32243 +DEL account.account.template: l10n_pe.chart32251 +DEL account.account.template: l10n_pe.chart32252 +DEL account.account.template: l10n_pe.chart32261 +DEL account.account.template: l10n_pe.chart32262 +DEL account.account.template: l10n_pe.chart32271 +DEL account.account.template: l10n_pe.chart32272 +DEL account.account.template: l10n_pe.chart32281 +DEL account.account.template: l10n_pe.chart32282 +DEL account.account.template: l10n_pe.chart32301 +DEL account.account.template: l10n_pe.chart32302 +DEL account.account.template: l10n_pe.chart32321 +DEL account.account.template: l10n_pe.chart32331 +DEL account.account.template: l10n_pe.chart32332 +DEL account.account.template: l10n_pe.chart32341 +DEL account.account.template: l10n_pe.chart32342 +DEL account.account.template: l10n_pe.chart32351 +DEL account.account.template: l10n_pe.chart32352 +DEL account.account.template: l10n_pe.chart32361 +DEL account.account.template: l10n_pe.chart32362 +DEL account.account.template: l10n_pe.chart33011 +DEL account.account.template: l10n_pe.chart33012 +DEL account.account.template: l10n_pe.chart33013 +DEL account.account.template: l10n_pe.chart33014 +DEL account.account.template: l10n_pe.chart33021 +DEL account.account.template: l10n_pe.chart33022 +DEL account.account.template: l10n_pe.chart33023 +DEL account.account.template: l10n_pe.chart33024 +DEL account.account.template: l10n_pe.chart33111 +DEL account.account.template: l10n_pe.chart33112 +DEL account.account.template: l10n_pe.chart33211 +DEL account.account.template: l10n_pe.chart33212 +DEL account.account.template: l10n_pe.chart33213 +DEL account.account.template: l10n_pe.chart33241 +DEL account.account.template: l10n_pe.chart33242 +DEL account.account.template: l10n_pe.chart33243 +DEL account.account.template: l10n_pe.chart33251 +DEL account.account.template: l10n_pe.chart33252 +DEL account.account.template: l10n_pe.chart33253 +DEL account.account.template: l10n_pe.chart33311 +DEL account.account.template: l10n_pe.chart33312 +DEL account.account.template: l10n_pe.chart33313 +DEL account.account.template: l10n_pe.chart33411 +DEL account.account.template: l10n_pe.chart33412 +DEL account.account.template: l10n_pe.chart33421 +DEL account.account.template: l10n_pe.chart33422 +DEL account.account.template: l10n_pe.chart33511 +DEL account.account.template: l10n_pe.chart33512 +DEL account.account.template: l10n_pe.chart33521 +DEL account.account.template: l10n_pe.chart33522 +DEL account.account.template: l10n_pe.chart33611 +DEL account.account.template: l10n_pe.chart33612 +DEL account.account.template: l10n_pe.chart33621 +DEL account.account.template: l10n_pe.chart33622 +DEL account.account.template: l10n_pe.chart33631 +DEL account.account.template: l10n_pe.chart33632 +DEL account.account.template: l10n_pe.chart33641 +DEL account.account.template: l10n_pe.chart33642 +DEL account.account.template: l10n_pe.chart33691 +DEL account.account.template: l10n_pe.chart33692 +DEL account.account.template: l10n_pe.chart33711 +DEL account.account.template: l10n_pe.chart33712 +DEL account.account.template: l10n_pe.chart33721 +DEL account.account.template: l10n_pe.chart33722 +DEL account.account.template: l10n_pe.chart3381 +DEL account.account.template: l10n_pe.chart3382 +DEL account.account.template: l10n_pe.chart3383 +DEL account.account.template: l10n_pe.chart3386 +DEL account.account.template: l10n_pe.chart3387 +DEL account.account.template: l10n_pe.chart3391 +DEL account.account.template: l10n_pe.chart33921 +DEL account.account.template: l10n_pe.chart33922 +DEL account.account.template: l10n_pe.chart33931 +DEL account.account.template: l10n_pe.chart33932 +DEL account.account.template: l10n_pe.chart34111 +DEL account.account.template: l10n_pe.chart34112 +DEL account.account.template: l10n_pe.chart34121 +DEL account.account.template: l10n_pe.chart34122 +DEL account.account.template: l10n_pe.chart34191 +DEL account.account.template: l10n_pe.chart34192 +DEL account.account.template: l10n_pe.chart34211 +DEL account.account.template: l10n_pe.chart34212 +DEL account.account.template: l10n_pe.chart34221 +DEL account.account.template: l10n_pe.chart34222 +DEL account.account.template: l10n_pe.chart34311 +DEL account.account.template: l10n_pe.chart34312 +DEL account.account.template: l10n_pe.chart34411 +DEL account.account.template: l10n_pe.chart34412 +DEL account.account.template: l10n_pe.chart34413 +DEL account.account.template: l10n_pe.chart34421 +DEL account.account.template: l10n_pe.chart34422 +DEL account.account.template: l10n_pe.chart34423 +DEL account.account.template: l10n_pe.chart34511 +DEL account.account.template: l10n_pe.chart34512 +DEL account.account.template: l10n_pe.chart34521 +DEL account.account.template: l10n_pe.chart34522 +DEL account.account.template: l10n_pe.chart3471 +DEL account.account.template: l10n_pe.chart34911 +DEL account.account.template: l10n_pe.chart34912 +DEL account.account.template: l10n_pe.chart35111 +DEL account.account.template: l10n_pe.chart35113 +DEL account.account.template: l10n_pe.chart35114 +DEL account.account.template: l10n_pe.chart35121 +DEL account.account.template: l10n_pe.chart35123 +DEL account.account.template: l10n_pe.chart35124 +DEL account.account.template: l10n_pe.chart35211 +DEL account.account.template: l10n_pe.chart35213 +DEL account.account.template: l10n_pe.chart35214 +DEL account.account.template: l10n_pe.chart35221 +DEL account.account.template: l10n_pe.chart35223 +DEL account.account.template: l10n_pe.chart35224 +DEL account.account.template: l10n_pe.chart36111 +DEL account.account.template: l10n_pe.chart36112 +DEL account.account.template: l10n_pe.chart36121 +DEL account.account.template: l10n_pe.chart36122 +DEL account.account.template: l10n_pe.chart36123 +DEL account.account.template: l10n_pe.chart36131 +DEL account.account.template: l10n_pe.chart36132 +DEL account.account.template: l10n_pe.chart36133 +DEL account.account.template: l10n_pe.chart36211 +DEL account.account.template: l10n_pe.chart36212 +DEL account.account.template: l10n_pe.chart36221 +DEL account.account.template: l10n_pe.chart36222 +DEL account.account.template: l10n_pe.chart36223 +DEL account.account.template: l10n_pe.chart36311 +DEL account.account.template: l10n_pe.chart36312 +DEL account.account.template: l10n_pe.chart36321 +DEL account.account.template: l10n_pe.chart36322 +DEL account.account.template: l10n_pe.chart36323 +DEL account.account.template: l10n_pe.chart36331 +DEL account.account.template: l10n_pe.chart36332 +DEL account.account.template: l10n_pe.chart36333 +DEL account.account.template: l10n_pe.chart36341 +DEL account.account.template: l10n_pe.chart36342 +DEL account.account.template: l10n_pe.chart36351 +DEL account.account.template: l10n_pe.chart36352 +DEL account.account.template: l10n_pe.chart36361 +DEL account.account.template: l10n_pe.chart36362 +DEL account.account.template: l10n_pe.chart36401 +DEL account.account.template: l10n_pe.chart36402 +DEL account.account.template: l10n_pe.chart36403 +DEL account.account.template: l10n_pe.chart36405 +DEL account.account.template: l10n_pe.chart36406 +DEL account.account.template: l10n_pe.chart36407 +DEL account.account.template: l10n_pe.chart36408 +DEL account.account.template: l10n_pe.chart36411 +DEL account.account.template: l10n_pe.chart36412 +DEL account.account.template: l10n_pe.chart36421 +DEL account.account.template: l10n_pe.chart36422 +DEL account.account.template: l10n_pe.chart36423 +DEL account.account.template: l10n_pe.chart36424 +DEL account.account.template: l10n_pe.chart36425 +DEL account.account.template: l10n_pe.chart36426 +DEL account.account.template: l10n_pe.chart36427 +DEL account.account.template: l10n_pe.chart36428 +DEL account.account.template: l10n_pe.chart36429 +DEL account.account.template: l10n_pe.chart36431 +DEL account.account.template: l10n_pe.chart36432 +DEL account.account.template: l10n_pe.chart36433 +DEL account.account.template: l10n_pe.chart36441 +DEL account.account.template: l10n_pe.chart36442 +DEL account.account.template: l10n_pe.chart36451 +DEL account.account.template: l10n_pe.chart36452 +DEL account.account.template: l10n_pe.chart36461 +DEL account.account.template: l10n_pe.chart36462 +DEL account.account.template: l10n_pe.chart36471 +DEL account.account.template: l10n_pe.chart36491 +DEL account.account.template: l10n_pe.chart36492 +DEL account.account.template: l10n_pe.chart36511 +DEL account.account.template: l10n_pe.chart36512 +DEL account.account.template: l10n_pe.chart36521 +DEL account.account.template: l10n_pe.chart36522 +DEL account.account.template: l10n_pe.chart36531 +DEL account.account.template: l10n_pe.chart36532 +DEL account.account.template: l10n_pe.chart36541 +DEL account.account.template: l10n_pe.chart36542 +DEL account.account.template: l10n_pe.chart36543 +DEL account.account.template: l10n_pe.chart36551 +DEL account.account.template: l10n_pe.chart36552 +DEL account.account.template: l10n_pe.chart3657 +DEL account.account.template: l10n_pe.chart36591 +DEL account.account.template: l10n_pe.chart36592 +DEL account.account.template: l10n_pe.chart36611 +DEL account.account.template: l10n_pe.chart36613 +DEL account.account.template: l10n_pe.chart36621 +DEL account.account.template: l10n_pe.chart36622 +DEL account.account.template: l10n_pe.chart36711 +DEL account.account.template: l10n_pe.chart36721 +DEL account.account.template: l10n_pe.chart36731 +DEL account.account.template: l10n_pe.chart3711 +DEL account.account.template: l10n_pe.chart3712 +DEL account.account.template: l10n_pe.chart3721 +DEL account.account.template: l10n_pe.chart3722 +DEL account.account.template: l10n_pe.chart3731 +DEL account.account.template: l10n_pe.chart3732 +DEL account.account.template: l10n_pe.chart3811 +DEL account.account.template: l10n_pe.chart3812 +DEL account.account.template: l10n_pe.chart3813 +DEL account.account.template: l10n_pe.chart3821 +DEL account.account.template: l10n_pe.chart3822 +DEL account.account.template: l10n_pe.chart3823 +DEL account.account.template: l10n_pe.chart3829 +DEL account.account.template: l10n_pe.chart39111 +DEL account.account.template: l10n_pe.chart39112 +DEL account.account.template: l10n_pe.chart39113 +DEL account.account.template: l10n_pe.chart39211 +DEL account.account.template: l10n_pe.chart39212 +DEL account.account.template: l10n_pe.chart39213 +DEL account.account.template: l10n_pe.chart39321 +DEL account.account.template: l10n_pe.chart39322 +DEL account.account.template: l10n_pe.chart39323 +DEL account.account.template: l10n_pe.chart39331 +DEL account.account.template: l10n_pe.chart39332 +DEL account.account.template: l10n_pe.chart39333 +DEL account.account.template: l10n_pe.chart39341 +DEL account.account.template: l10n_pe.chart39342 +DEL account.account.template: l10n_pe.chart39351 +DEL account.account.template: l10n_pe.chart39361 +DEL account.account.template: l10n_pe.chart39362 +DEL account.account.template: l10n_pe.chart39410 +DEL account.account.template: l10n_pe.chart39411 +DEL account.account.template: l10n_pe.chart39412 +DEL account.account.template: l10n_pe.chart39413 +DEL account.account.template: l10n_pe.chart39414 +DEL account.account.template: l10n_pe.chart39415 +DEL account.account.template: l10n_pe.chart39520 +DEL account.account.template: l10n_pe.chart39521 +DEL account.account.template: l10n_pe.chart39522 +DEL account.account.template: l10n_pe.chart39523 +DEL account.account.template: l10n_pe.chart39524 +DEL account.account.template: l10n_pe.chart39525 +DEL account.account.template: l10n_pe.chart39526 +DEL account.account.template: l10n_pe.chart39527 +DEL account.account.template: l10n_pe.chart39528 +DEL account.account.template: l10n_pe.chart39529 +DEL account.account.template: l10n_pe.chart39530 +DEL account.account.template: l10n_pe.chart39531 +DEL account.account.template: l10n_pe.chart39532 +DEL account.account.template: l10n_pe.chart39533 +DEL account.account.template: l10n_pe.chart39534 +DEL account.account.template: l10n_pe.chart39535 +DEL account.account.template: l10n_pe.chart39536 +DEL account.account.template: l10n_pe.chart39537 +DEL account.account.template: l10n_pe.chart39538 +DEL account.account.template: l10n_pe.chart39540 +DEL account.account.template: l10n_pe.chart39541 +DEL account.account.template: l10n_pe.chart39542 +DEL account.account.template: l10n_pe.chart39550 +DEL account.account.template: l10n_pe.chart39611 +DEL account.account.template: l10n_pe.chart39612 +DEL account.account.template: l10n_pe.chart39613 +DEL account.account.template: l10n_pe.chart39614 +DEL account.account.template: l10n_pe.chart39615 +DEL account.account.template: l10n_pe.chart39619 +DEL account.account.template: l10n_pe.chart39621 +DEL account.account.template: l10n_pe.chart39622 +DEL account.account.template: l10n_pe.chart39623 +DEL account.account.template: l10n_pe.chart39624 +DEL account.account.template: l10n_pe.chart39625 +DEL account.account.template: l10n_pe.chart39629 +DEL account.account.template: l10n_pe.chart39633 +DEL account.account.template: l10n_pe.chart39634 +DEL account.account.template: l10n_pe.chart39635 +DEL account.account.template: l10n_pe.chart39811 +DEL account.account.template: l10n_pe.chart40111 +DEL account.account.template: l10n_pe.chart40112 +DEL account.account.template: l10n_pe.chart40113 +DEL account.account.template: l10n_pe.chart40114 +DEL account.account.template: l10n_pe.chart40115 +DEL account.account.template: l10n_pe.chart40116 +DEL account.account.template: l10n_pe.chart40117 +DEL account.account.template: l10n_pe.chart4012 +DEL account.account.template: l10n_pe.chart40151 +DEL account.account.template: l10n_pe.chart40152 +DEL account.account.template: l10n_pe.chart40171 +DEL account.account.template: l10n_pe.chart40172 +DEL account.account.template: l10n_pe.chart40173 +DEL account.account.template: l10n_pe.chart40174 +DEL account.account.template: l10n_pe.chart40175 +DEL account.account.template: l10n_pe.chart40181 +DEL account.account.template: l10n_pe.chart40182 +DEL account.account.template: l10n_pe.chart40183 +DEL account.account.template: l10n_pe.chart40184 +DEL account.account.template: l10n_pe.chart40185 +DEL account.account.template: l10n_pe.chart40186 +DEL account.account.template: l10n_pe.chart40189 +DEL account.account.template: l10n_pe.chart402 +DEL account.account.template: l10n_pe.chart4031 +DEL account.account.template: l10n_pe.chart4032 +DEL account.account.template: l10n_pe.chart4033 +DEL account.account.template: l10n_pe.chart4034 +DEL account.account.template: l10n_pe.chart4039 +DEL account.account.template: l10n_pe.chart405 +DEL account.account.template: l10n_pe.chart40611 +DEL account.account.template: l10n_pe.chart40612 +DEL account.account.template: l10n_pe.chart40613 +DEL account.account.template: l10n_pe.chart40614 +DEL account.account.template: l10n_pe.chart40615 +DEL account.account.template: l10n_pe.chart40616 +DEL account.account.template: l10n_pe.chart4062 +DEL account.account.template: l10n_pe.chart40631 +DEL account.account.template: l10n_pe.chart40632 +DEL account.account.template: l10n_pe.chart40633 +DEL account.account.template: l10n_pe.chart40634 +DEL account.account.template: l10n_pe.chart40635 +DEL account.account.template: l10n_pe.chart409 +DEL account.account.template: l10n_pe.chart4111 +DEL account.account.template: l10n_pe.chart4112 +DEL account.account.template: l10n_pe.chart4113 +DEL account.account.template: l10n_pe.chart4114 +DEL account.account.template: l10n_pe.chart4115 +DEL account.account.template: l10n_pe.chart413 +DEL account.account.template: l10n_pe.chart4151 +DEL account.account.template: l10n_pe.chart4152 +DEL account.account.template: l10n_pe.chart4153 +DEL account.account.template: l10n_pe.chart417 +DEL account.account.template: l10n_pe.chart419 +DEL account.account.template: l10n_pe.chart4211 +DEL account.account.template: l10n_pe.chart4212 +DEL account.account.template: l10n_pe.chart422 +DEL account.account.template: l10n_pe.chart423 +DEL account.account.template: l10n_pe.chart424 +DEL account.account.template: l10n_pe.chart4311 +DEL account.account.template: l10n_pe.chart4312 +DEL account.account.template: l10n_pe.chart4321 +DEL account.account.template: l10n_pe.chart4331 +DEL account.account.template: l10n_pe.chart4341 +DEL account.account.template: l10n_pe.chart4411 +DEL account.account.template: l10n_pe.chart4412 +DEL account.account.template: l10n_pe.chart4419 +DEL account.account.template: l10n_pe.chart4421 +DEL account.account.template: l10n_pe.chart4429 +DEL account.account.template: l10n_pe.chart4511 +DEL account.account.template: l10n_pe.chart4512 +DEL account.account.template: l10n_pe.chart452 +DEL account.account.template: l10n_pe.chart4531 +DEL account.account.template: l10n_pe.chart4532 +DEL account.account.template: l10n_pe.chart4533 +DEL account.account.template: l10n_pe.chart4539 +DEL account.account.template: l10n_pe.chart4541 +DEL account.account.template: l10n_pe.chart4542 +DEL account.account.template: l10n_pe.chart4543 +DEL account.account.template: l10n_pe.chart4544 +DEL account.account.template: l10n_pe.chart4545 +DEL account.account.template: l10n_pe.chart4549 +DEL account.account.template: l10n_pe.chart45511 +DEL account.account.template: l10n_pe.chart45512 +DEL account.account.template: l10n_pe.chart4552 +DEL account.account.template: l10n_pe.chart45531 +DEL account.account.template: l10n_pe.chart45532 +DEL account.account.template: l10n_pe.chart45533 +DEL account.account.template: l10n_pe.chart45539 +DEL account.account.template: l10n_pe.chart45541 +DEL account.account.template: l10n_pe.chart45542 +DEL account.account.template: l10n_pe.chart45543 +DEL account.account.template: l10n_pe.chart45544 +DEL account.account.template: l10n_pe.chart45545 +DEL account.account.template: l10n_pe.chart45549 +DEL account.account.template: l10n_pe.chart456 +DEL account.account.template: l10n_pe.chart461 +DEL account.account.template: l10n_pe.chart4641 +DEL account.account.template: l10n_pe.chart46421 +DEL account.account.template: l10n_pe.chart46422 +DEL account.account.template: l10n_pe.chart4651 +DEL account.account.template: l10n_pe.chart4652 +DEL account.account.template: l10n_pe.chart4653 +DEL account.account.template: l10n_pe.chart4654 +DEL account.account.template: l10n_pe.chart4655 +DEL account.account.template: l10n_pe.chart4656 +DEL account.account.template: l10n_pe.chart466 +DEL account.account.template: l10n_pe.chart467 +DEL account.account.template: l10n_pe.chart4691 +DEL account.account.template: l10n_pe.chart4692 +DEL account.account.template: l10n_pe.chart4699 +DEL account.account.template: l10n_pe.chart471 +DEL account.account.template: l10n_pe.chart472 +DEL account.account.template: l10n_pe.chart473 +DEL account.account.template: l10n_pe.chart474 +DEL account.account.template: l10n_pe.chart475 +DEL account.account.template: l10n_pe.chart476 +DEL account.account.template: l10n_pe.chart4771 +DEL account.account.template: l10n_pe.chart4772 +DEL account.account.template: l10n_pe.chart4773 +DEL account.account.template: l10n_pe.chart4774 +DEL account.account.template: l10n_pe.chart4775 +DEL account.account.template: l10n_pe.chart4776 +DEL account.account.template: l10n_pe.chart4791 +DEL account.account.template: l10n_pe.chart481 +DEL account.account.template: l10n_pe.chart482 +DEL account.account.template: l10n_pe.chart483 +DEL account.account.template: l10n_pe.chart484 +DEL account.account.template: l10n_pe.chart485 +DEL account.account.template: l10n_pe.chart486 +DEL account.account.template: l10n_pe.chart487 +DEL account.account.template: l10n_pe.chart489 +DEL account.account.template: l10n_pe.chart4911 +DEL account.account.template: l10n_pe.chart4912 +DEL account.account.template: l10n_pe.chart4921 +DEL account.account.template: l10n_pe.chart4922 +DEL account.account.template: l10n_pe.chart4931 +DEL account.account.template: l10n_pe.chart4932 +DEL account.account.template: l10n_pe.chart494 +DEL account.account.template: l10n_pe.chart495 +DEL account.account.template: l10n_pe.chart496 +DEL account.account.template: l10n_pe.chart497 +DEL account.account.template: l10n_pe.chart5011 +DEL account.account.template: l10n_pe.chart5012 +DEL account.account.template: l10n_pe.chart502 +DEL account.account.template: l10n_pe.chart511 +DEL account.account.template: l10n_pe.chart512 +DEL account.account.template: l10n_pe.chart521 +DEL account.account.template: l10n_pe.chart5221 +DEL account.account.template: l10n_pe.chart5222 +DEL account.account.template: l10n_pe.chart5223 +DEL account.account.template: l10n_pe.chart5224 +DEL account.account.template: l10n_pe.chart523 +DEL account.account.template: l10n_pe.chart561 +DEL account.account.template: l10n_pe.chart562 +DEL account.account.template: l10n_pe.chart5631 +DEL account.account.template: l10n_pe.chart5632 +DEL account.account.template: l10n_pe.chart5641 +DEL account.account.template: l10n_pe.chart5642 +DEL account.account.template: l10n_pe.chart5651 +DEL account.account.template: l10n_pe.chart5652 +DEL account.account.template: l10n_pe.chart57111 +DEL account.account.template: l10n_pe.chart57112 +DEL account.account.template: l10n_pe.chart57121 +DEL account.account.template: l10n_pe.chart57122 +DEL account.account.template: l10n_pe.chart5713 +DEL account.account.template: l10n_pe.chart5714 +DEL account.account.template: l10n_pe.chart572 +DEL account.account.template: l10n_pe.chart573 +DEL account.account.template: l10n_pe.chart581 +DEL account.account.template: l10n_pe.chart582 +DEL account.account.template: l10n_pe.chart583 +DEL account.account.template: l10n_pe.chart584 +DEL account.account.template: l10n_pe.chart585 +DEL account.account.template: l10n_pe.chart589 +DEL account.account.template: l10n_pe.chart5911 +DEL account.account.template: l10n_pe.chart5912 +DEL account.account.template: l10n_pe.chart5921 +DEL account.account.template: l10n_pe.chart5922 +DEL account.account.template: l10n_pe.chart6011 +DEL account.account.template: l10n_pe.chart602 +DEL account.account.template: l10n_pe.chart6031 +DEL account.account.template: l10n_pe.chart6032 +DEL account.account.template: l10n_pe.chart6033 +DEL account.account.template: l10n_pe.chart6041 +DEL account.account.template: l10n_pe.chart6042 +DEL account.account.template: l10n_pe.chart60911 +DEL account.account.template: l10n_pe.chart60912 +DEL account.account.template: l10n_pe.chart60913 +DEL account.account.template: l10n_pe.chart60914 +DEL account.account.template: l10n_pe.chart60919 +DEL account.account.template: l10n_pe.chart60921 +DEL account.account.template: l10n_pe.chart60922 +DEL account.account.template: l10n_pe.chart60923 +DEL account.account.template: l10n_pe.chart60924 +DEL account.account.template: l10n_pe.chart60925 +DEL account.account.template: l10n_pe.chart60931 +DEL account.account.template: l10n_pe.chart60932 +DEL account.account.template: l10n_pe.chart60933 +DEL account.account.template: l10n_pe.chart60934 +DEL account.account.template: l10n_pe.chart60935 +DEL account.account.template: l10n_pe.chart60941 +DEL account.account.template: l10n_pe.chart60942 +DEL account.account.template: l10n_pe.chart60943 +DEL account.account.template: l10n_pe.chart60944 +DEL account.account.template: l10n_pe.chart60945 +DEL account.account.template: l10n_pe.chart6111 +DEL account.account.template: l10n_pe.chart6121 +DEL account.account.template: l10n_pe.chart6131 +DEL account.account.template: l10n_pe.chart6132 +DEL account.account.template: l10n_pe.chart6133 +DEL account.account.template: l10n_pe.chart6141 +DEL account.account.template: l10n_pe.chart6142 +DEL account.account.template: l10n_pe.chart6211 +DEL account.account.template: l10n_pe.chart6212 +DEL account.account.template: l10n_pe.chart6213 +DEL account.account.template: l10n_pe.chart6214 +DEL account.account.template: l10n_pe.chart6215 +DEL account.account.template: l10n_pe.chart622 +DEL account.account.template: l10n_pe.chart623 +DEL account.account.template: l10n_pe.chart624 +DEL account.account.template: l10n_pe.chart625 +DEL account.account.template: l10n_pe.chart6271 +DEL account.account.template: l10n_pe.chart6272 +DEL account.account.template: l10n_pe.chart6273 +DEL account.account.template: l10n_pe.chart6274 +DEL account.account.template: l10n_pe.chart6275 +DEL account.account.template: l10n_pe.chart6276 +DEL account.account.template: l10n_pe.chart6277 +DEL account.account.template: l10n_pe.chart628 +DEL account.account.template: l10n_pe.chart6291 +DEL account.account.template: l10n_pe.chart6292 +DEL account.account.template: l10n_pe.chart6293 +DEL account.account.template: l10n_pe.chart62941 +DEL account.account.template: l10n_pe.chart62942 +DEL account.account.template: l10n_pe.chart63111 +DEL account.account.template: l10n_pe.chart63112 +DEL account.account.template: l10n_pe.chart6312 +DEL account.account.template: l10n_pe.chart6313 +DEL account.account.template: l10n_pe.chart6314 +DEL account.account.template: l10n_pe.chart6315 +DEL account.account.template: l10n_pe.chart6321 +DEL account.account.template: l10n_pe.chart6322 +DEL account.account.template: l10n_pe.chart6323 +DEL account.account.template: l10n_pe.chart6324 +DEL account.account.template: l10n_pe.chart6325 +DEL account.account.template: l10n_pe.chart6326 +DEL account.account.template: l10n_pe.chart6327 +DEL account.account.template: l10n_pe.chart6329 +DEL account.account.template: l10n_pe.chart633 +DEL account.account.template: l10n_pe.chart6341 +DEL account.account.template: l10n_pe.chart63421 +DEL account.account.template: l10n_pe.chart63432 +DEL account.account.template: l10n_pe.chart6344 +DEL account.account.template: l10n_pe.chart6345 +DEL account.account.template: l10n_pe.chart6351 +DEL account.account.template: l10n_pe.chart6352 +DEL account.account.template: l10n_pe.chart6353 +DEL account.account.template: l10n_pe.chart6354 +DEL account.account.template: l10n_pe.chart6355 +DEL account.account.template: l10n_pe.chart6356 +DEL account.account.template: l10n_pe.chart6361 +DEL account.account.template: l10n_pe.chart6362 +DEL account.account.template: l10n_pe.chart6363 +DEL account.account.template: l10n_pe.chart6364 +DEL account.account.template: l10n_pe.chart6365 +DEL account.account.template: l10n_pe.chart6366 +DEL account.account.template: l10n_pe.chart6367 +DEL account.account.template: l10n_pe.chart6371 +DEL account.account.template: l10n_pe.chart6372 +DEL account.account.template: l10n_pe.chart6373 +DEL account.account.template: l10n_pe.chart638 +DEL account.account.template: l10n_pe.chart6391 +DEL account.account.template: l10n_pe.chart6392 +DEL account.account.template: l10n_pe.chart6411 +DEL account.account.template: l10n_pe.chart6412 +DEL account.account.template: l10n_pe.chart6413 +DEL account.account.template: l10n_pe.chart6414 +DEL account.account.template: l10n_pe.chart6415 +DEL account.account.template: l10n_pe.chart6416 +DEL account.account.template: l10n_pe.chart6419 +DEL account.account.template: l10n_pe.chart642 +DEL account.account.template: l10n_pe.chart6431 +DEL account.account.template: l10n_pe.chart6432 +DEL account.account.template: l10n_pe.chart6433 +DEL account.account.template: l10n_pe.chart6434 +DEL account.account.template: l10n_pe.chart6439 +DEL account.account.template: l10n_pe.chart6442 +DEL account.account.template: l10n_pe.chart6443 +DEL account.account.template: l10n_pe.chart6451 +DEL account.account.template: l10n_pe.chart6452 +DEL account.account.template: l10n_pe.chart6453 +DEL account.account.template: l10n_pe.chart6454 +DEL account.account.template: l10n_pe.chart651 +DEL account.account.template: l10n_pe.chart652 +DEL account.account.template: l10n_pe.chart653 +DEL account.account.template: l10n_pe.chart654 +DEL account.account.template: l10n_pe.chart65511 +DEL account.account.template: l10n_pe.chart65512 +DEL account.account.template: l10n_pe.chart65513 +DEL account.account.template: l10n_pe.chart65514 +DEL account.account.template: l10n_pe.chart65515 +DEL account.account.template: l10n_pe.chart65516 +DEL account.account.template: l10n_pe.chart65521 +DEL account.account.template: l10n_pe.chart65522 +DEL account.account.template: l10n_pe.chart65523 +DEL account.account.template: l10n_pe.chart65524 +DEL account.account.template: l10n_pe.chart65525 +DEL account.account.template: l10n_pe.chart656 +DEL account.account.template: l10n_pe.chart658 +DEL account.account.template: l10n_pe.chart6591 +DEL account.account.template: l10n_pe.chart6592 +DEL account.account.template: l10n_pe.chart6611 +DEL account.account.template: l10n_pe.chart6612 +DEL account.account.template: l10n_pe.chart66131 +DEL account.account.template: l10n_pe.chart66132 +DEL account.account.template: l10n_pe.chart66133 +DEL account.account.template: l10n_pe.chart66134 +DEL account.account.template: l10n_pe.chart6621 +DEL account.account.template: l10n_pe.chart6622 +DEL account.account.template: l10n_pe.chart6711 +DEL account.account.template: l10n_pe.chart6712 +DEL account.account.template: l10n_pe.chart6713 +DEL account.account.template: l10n_pe.chart6714 +DEL account.account.template: l10n_pe.chart672 +DEL account.account.template: l10n_pe.chart67311 +DEL account.account.template: l10n_pe.chart67312 +DEL account.account.template: l10n_pe.chart6732 +DEL account.account.template: l10n_pe.chart6733 +DEL account.account.template: l10n_pe.chart6734 +DEL account.account.template: l10n_pe.chart6735 +DEL account.account.template: l10n_pe.chart6736 +DEL account.account.template: l10n_pe.chart6741 +DEL account.account.template: l10n_pe.chart675 +DEL account.account.template: l10n_pe.chart676 +DEL account.account.template: l10n_pe.chart6771 +DEL account.account.template: l10n_pe.chart6772 +DEL account.account.template: l10n_pe.chart6773 +DEL account.account.template: l10n_pe.chart6781 +DEL account.account.template: l10n_pe.chart6782 +DEL account.account.template: l10n_pe.chart6791 +DEL account.account.template: l10n_pe.chart6792 +DEL account.account.template: l10n_pe.chart6793 +DEL account.account.template: l10n_pe.chart68111 +DEL account.account.template: l10n_pe.chart68112 +DEL account.account.template: l10n_pe.chart68113 +DEL account.account.template: l10n_pe.chart682111 +DEL account.account.template: l10n_pe.chart682112 +DEL account.account.template: l10n_pe.chart682113 +DEL account.account.template: l10n_pe.chart682211 +DEL account.account.template: l10n_pe.chart682212 +DEL account.account.template: l10n_pe.chart682213 +DEL account.account.template: l10n_pe.chart682221 +DEL account.account.template: l10n_pe.chart682222 +DEL account.account.template: l10n_pe.chart682223 +DEL account.account.template: l10n_pe.chart682231 +DEL account.account.template: l10n_pe.chart682232 +DEL account.account.template: l10n_pe.chart682251 +DEL account.account.template: l10n_pe.chart682252 +DEL account.account.template: l10n_pe.chart683111 +DEL account.account.template: l10n_pe.chart683112 +DEL account.account.template: l10n_pe.chart683121 +DEL account.account.template: l10n_pe.chart683122 +DEL account.account.template: l10n_pe.chart683131 +DEL account.account.template: l10n_pe.chart683132 +DEL account.account.template: l10n_pe.chart683152 +DEL account.account.template: l10n_pe.chart68410 +DEL account.account.template: l10n_pe.chart68411 +DEL account.account.template: l10n_pe.chart68412 +DEL account.account.template: l10n_pe.chart68413 +DEL account.account.template: l10n_pe.chart68414 +DEL account.account.template: l10n_pe.chart68415 +DEL account.account.template: l10n_pe.chart68416 +DEL account.account.template: l10n_pe.chart68420 +DEL account.account.template: l10n_pe.chart68421 +DEL account.account.template: l10n_pe.chart68422 +DEL account.account.template: l10n_pe.chart68423 +DEL account.account.template: l10n_pe.chart68424 +DEL account.account.template: l10n_pe.chart68425 +DEL account.account.template: l10n_pe.chart68426 +DEL account.account.template: l10n_pe.chart68430 +DEL account.account.template: l10n_pe.chart68431 +DEL account.account.template: l10n_pe.chart68432 +DEL account.account.template: l10n_pe.chart68511 +DEL account.account.template: l10n_pe.chart68512 +DEL account.account.template: l10n_pe.chart68521 +DEL account.account.template: l10n_pe.chart68522 +DEL account.account.template: l10n_pe.chart68611 +DEL account.account.template: l10n_pe.chart68612 +DEL account.account.template: l10n_pe.chart68613 +DEL account.account.template: l10n_pe.chart68614 +DEL account.account.template: l10n_pe.chart68615 +DEL account.account.template: l10n_pe.chart68619 +DEL account.account.template: l10n_pe.chart68621 +DEL account.account.template: l10n_pe.chart68622 +DEL account.account.template: l10n_pe.chart68623 +DEL account.account.template: l10n_pe.chart68624 +DEL account.account.template: l10n_pe.chart68625 +DEL account.account.template: l10n_pe.chart68629 +DEL account.account.template: l10n_pe.chart68711 +DEL account.account.template: l10n_pe.chart68712 +DEL account.account.template: l10n_pe.chart68713 +DEL account.account.template: l10n_pe.chart68714 +DEL account.account.template: l10n_pe.chart68715 +DEL account.account.template: l10n_pe.chart68731 +DEL account.account.template: l10n_pe.chart68732 +DEL account.account.template: l10n_pe.chart68812 +DEL account.account.template: l10n_pe.chart68813 +DEL account.account.template: l10n_pe.chart68820 +DEL account.account.template: l10n_pe.chart68821 +DEL account.account.template: l10n_pe.chart68822 +DEL account.account.template: l10n_pe.chart68823 +DEL account.account.template: l10n_pe.chart68824 +DEL account.account.template: l10n_pe.chart68825 +DEL account.account.template: l10n_pe.chart68826 +DEL account.account.template: l10n_pe.chart68827 +DEL account.account.template: l10n_pe.chart68828 +DEL account.account.template: l10n_pe.chart68830 +DEL account.account.template: l10n_pe.chart68831 +DEL account.account.template: l10n_pe.chart68832 +DEL account.account.template: l10n_pe.chart68833 +DEL account.account.template: l10n_pe.chart68834 +DEL account.account.template: l10n_pe.chart68835 +DEL account.account.template: l10n_pe.chart68836 +DEL account.account.template: l10n_pe.chart68837 +DEL account.account.template: l10n_pe.chart68838 +DEL account.account.template: l10n_pe.chart68841 +DEL account.account.template: l10n_pe.chart68842 +DEL account.account.template: l10n_pe.chart68843 +DEL account.account.template: l10n_pe.chart68844 +DEL account.account.template: l10n_pe.chart68845 +DEL account.account.template: l10n_pe.chart68846 +DEL account.account.template: l10n_pe.chart68847 +DEL account.account.template: l10n_pe.chart68891 +DEL account.account.template: l10n_pe.chart68892 +DEL account.account.template: l10n_pe.chart68911 +DEL account.account.template: l10n_pe.chart68912 +DEL account.account.template: l10n_pe.chart68921 +DEL account.account.template: l10n_pe.chart68922 +DEL account.account.template: l10n_pe.chart6893 +DEL account.account.template: l10n_pe.chart68941 +DEL account.account.template: l10n_pe.chart68942 +DEL account.account.template: l10n_pe.chart68961 +DEL account.account.template: l10n_pe.chart68962 +DEL account.account.template: l10n_pe.chart68971 +DEL account.account.template: l10n_pe.chart68972 +DEL account.account.template: l10n_pe.chart6899 +DEL account.account.template: l10n_pe.chart69111 +DEL account.account.template: l10n_pe.chart69112 +DEL account.account.template: l10n_pe.chart69121 +DEL account.account.template: l10n_pe.chart69122 +DEL account.account.template: l10n_pe.chart69211 +DEL account.account.template: l10n_pe.chart69212 +DEL account.account.template: l10n_pe.chart69221 +DEL account.account.template: l10n_pe.chart69222 +DEL account.account.template: l10n_pe.chart69231 +DEL account.account.template: l10n_pe.chart69232 +DEL account.account.template: l10n_pe.chart6924 +DEL account.account.template: l10n_pe.chart6925 +DEL account.account.template: l10n_pe.chart69311 +DEL account.account.template: l10n_pe.chart69312 +DEL account.account.template: l10n_pe.chart69321 +DEL account.account.template: l10n_pe.chart69322 +DEL account.account.template: l10n_pe.chart69411 +DEL account.account.template: l10n_pe.chart69412 +DEL account.account.template: l10n_pe.chart69421 +DEL account.account.template: l10n_pe.chart69422 +DEL account.account.template: l10n_pe.chart6951 +DEL account.account.template: l10n_pe.chart6952 +DEL account.account.template: l10n_pe.chart6953 +DEL account.account.template: l10n_pe.chart6954 +DEL account.account.template: l10n_pe.chart6955 +DEL account.account.template: l10n_pe.chart6956 +DEL account.account.template: l10n_pe.chart6957 +DEL account.account.template: l10n_pe.chart6958 +DEL account.account.template: l10n_pe.chart70111 +DEL account.account.template: l10n_pe.chart70112 +DEL account.account.template: l10n_pe.chart70121 +DEL account.account.template: l10n_pe.chart70122 +DEL account.account.template: l10n_pe.chart70211 +DEL account.account.template: l10n_pe.chart70212 +DEL account.account.template: l10n_pe.chart70221 +DEL account.account.template: l10n_pe.chart70222 +DEL account.account.template: l10n_pe.chart70311 +DEL account.account.template: l10n_pe.chart70312 +DEL account.account.template: l10n_pe.chart70321 +DEL account.account.template: l10n_pe.chart70322 +DEL account.account.template: l10n_pe.chart70411 +DEL account.account.template: l10n_pe.chart70412 +DEL account.account.template: l10n_pe.chart70421 +DEL account.account.template: l10n_pe.chart70422 +DEL account.account.template: l10n_pe.chart70911 +DEL account.account.template: l10n_pe.chart70912 +DEL account.account.template: l10n_pe.chart70921 +DEL account.account.template: l10n_pe.chart70922 +DEL account.account.template: l10n_pe.chart70931 +DEL account.account.template: l10n_pe.chart70932 +DEL account.account.template: l10n_pe.chart70941 +DEL account.account.template: l10n_pe.chart70942 +DEL account.account.template: l10n_pe.chart70951 +DEL account.account.template: l10n_pe.chart70952 +DEL account.account.template: l10n_pe.chart70961 +DEL account.account.template: l10n_pe.chart70962 +DEL account.account.template: l10n_pe.chart7111 +DEL account.account.template: l10n_pe.chart7121 +DEL account.account.template: l10n_pe.chart7122 +DEL account.account.template: l10n_pe.chart7131 +DEL account.account.template: l10n_pe.chart7141 +DEL account.account.template: l10n_pe.chart7142 +DEL account.account.template: l10n_pe.chart7151 +DEL account.account.template: l10n_pe.chart7211 +DEL account.account.template: l10n_pe.chart7220 +DEL account.account.template: l10n_pe.chart7221 +DEL account.account.template: l10n_pe.chart7222 +DEL account.account.template: l10n_pe.chart7223 +DEL account.account.template: l10n_pe.chart7224 +DEL account.account.template: l10n_pe.chart7225 +DEL account.account.template: l10n_pe.chart7231 +DEL account.account.template: l10n_pe.chart7232 +DEL account.account.template: l10n_pe.chart7233 +DEL account.account.template: l10n_pe.chart7241 +DEL account.account.template: l10n_pe.chart7242 +DEL account.account.template: l10n_pe.chart72511 +DEL account.account.template: l10n_pe.chart72512 +DEL account.account.template: l10n_pe.chart72521 +DEL account.account.template: l10n_pe.chart72522 +DEL account.account.template: l10n_pe.chart72523 +DEL account.account.template: l10n_pe.chart7253 +DEL account.account.template: l10n_pe.chart72541 +DEL account.account.template: l10n_pe.chart72542 +DEL account.account.template: l10n_pe.chart7311 +DEL account.account.template: l10n_pe.chart7312 +DEL account.account.template: l10n_pe.chart7411 +DEL account.account.template: l10n_pe.chart7412 +DEL account.account.template: l10n_pe.chart751 +DEL account.account.template: l10n_pe.chart752 +DEL account.account.template: l10n_pe.chart753 +DEL account.account.template: l10n_pe.chart7540 +DEL account.account.template: l10n_pe.chart7541 +DEL account.account.template: l10n_pe.chart7542 +DEL account.account.template: l10n_pe.chart7543 +DEL account.account.template: l10n_pe.chart7544 +DEL account.account.template: l10n_pe.chart7545 +DEL account.account.template: l10n_pe.chart7551 +DEL account.account.template: l10n_pe.chart7552 +DEL account.account.template: l10n_pe.chart7553 +DEL account.account.template: l10n_pe.chart7561 +DEL account.account.template: l10n_pe.chart7562 +DEL account.account.template: l10n_pe.chart7563 +DEL account.account.template: l10n_pe.chart7564 +DEL account.account.template: l10n_pe.chart7565 +DEL account.account.template: l10n_pe.chart7566 +DEL account.account.template: l10n_pe.chart7571 +DEL account.account.template: l10n_pe.chart7572 +DEL account.account.template: l10n_pe.chart7573 +DEL account.account.template: l10n_pe.chart7574 +DEL account.account.template: l10n_pe.chart7591 +DEL account.account.template: l10n_pe.chart7592 +DEL account.account.template: l10n_pe.chart7593 +DEL account.account.template: l10n_pe.chart7594 +DEL account.account.template: l10n_pe.chart7599 +DEL account.account.template: l10n_pe.chart7611 +DEL account.account.template: l10n_pe.chart7612 +DEL account.account.template: l10n_pe.chart76131 +DEL account.account.template: l10n_pe.chart76132 +DEL account.account.template: l10n_pe.chart76133 +DEL account.account.template: l10n_pe.chart76134 +DEL account.account.template: l10n_pe.chart7621 +DEL account.account.template: l10n_pe.chart7622 +DEL account.account.template: l10n_pe.chart771 +DEL account.account.template: l10n_pe.chart7721 +DEL account.account.template: l10n_pe.chart7722 +DEL account.account.template: l10n_pe.chart7723 +DEL account.account.template: l10n_pe.chart7724 +DEL account.account.template: l10n_pe.chart7725 +DEL account.account.template: l10n_pe.chart773 +DEL account.account.template: l10n_pe.chart774 +DEL account.account.template: l10n_pe.chart775 +DEL account.account.template: l10n_pe.chart776 +DEL account.account.template: l10n_pe.chart7771 +DEL account.account.template: l10n_pe.chart7772 +DEL account.account.template: l10n_pe.chart7773 +DEL account.account.template: l10n_pe.chart7781 +DEL account.account.template: l10n_pe.chart7782 +DEL account.account.template: l10n_pe.chart7792 +DEL account.account.template: l10n_pe.chart781 +DEL account.account.template: l10n_pe.chart791 +DEL account.account.template: l10n_pe.chart792 +DEL account.account.template: l10n_pe.chart801 +DEL account.account.template: l10n_pe.chart811 +DEL account.account.template: l10n_pe.chart812 +DEL account.account.template: l10n_pe.chart813 +DEL account.account.template: l10n_pe.chart821 +DEL account.account.template: l10n_pe.chart831 +DEL account.account.template: l10n_pe.chart841 +DEL account.account.template: l10n_pe.chart851 +DEL account.account.template: l10n_pe.chart881 +DEL account.account.template: l10n_pe.chart882 +DEL account.account.template: l10n_pe.chart891 +DEL account.account.template: l10n_pe.chart892 +DEL account.chart.template: l10n_pe.pe_chart_template +# NOTHING TO DO: New CoA loading system + +DEL account.fiscal.position.tax.template: l10n_pe.exportation_sales_goods_1 +DEL account.fiscal.position.tax.template: l10n_pe.exportation_sales_goods_2 +DEL account.fiscal.position.template: l10n_pe.exportation +DEL account.fiscal.position.template: l10n_pe.local_peru +# DONE: post-migration: Remove XML-IDs, as model no longer exists + +DEL account.group.template: l10n_pe.group0 +DEL account.group.template: l10n_pe.group1 +DEL account.group.template: l10n_pe.group10 +DEL account.group.template: l10n_pe.group11 +DEL account.group.template: l10n_pe.group12 +DEL account.group.template: l10n_pe.group13 +DEL account.group.template: l10n_pe.group14 +DEL account.group.template: l10n_pe.group16 +DEL account.group.template: l10n_pe.group17 +DEL account.group.template: l10n_pe.group18 +DEL account.group.template: l10n_pe.group19 +DEL account.group.template: l10n_pe.group2 +DEL account.group.template: l10n_pe.group20 +DEL account.group.template: l10n_pe.group21 +DEL account.group.template: l10n_pe.group22 +DEL account.group.template: l10n_pe.group23 +DEL account.group.template: l10n_pe.group24 +DEL account.group.template: l10n_pe.group25 +DEL account.group.template: l10n_pe.group26 +DEL account.group.template: l10n_pe.group27 +DEL account.group.template: l10n_pe.group28 +DEL account.group.template: l10n_pe.group29 +DEL account.group.template: l10n_pe.group3 +DEL account.group.template: l10n_pe.group30 +DEL account.group.template: l10n_pe.group31 +DEL account.group.template: l10n_pe.group32 +DEL account.group.template: l10n_pe.group33 +DEL account.group.template: l10n_pe.group34 +DEL account.group.template: l10n_pe.group35 +DEL account.group.template: l10n_pe.group36 +DEL account.group.template: l10n_pe.group37 +DEL account.group.template: l10n_pe.group38 +DEL account.group.template: l10n_pe.group39 +DEL account.group.template: l10n_pe.group4 +DEL account.group.template: l10n_pe.group40 +DEL account.group.template: l10n_pe.group41 +DEL account.group.template: l10n_pe.group42 +DEL account.group.template: l10n_pe.group43 +DEL account.group.template: l10n_pe.group44 +DEL account.group.template: l10n_pe.group45 +DEL account.group.template: l10n_pe.group46 +DEL account.group.template: l10n_pe.group47 +DEL account.group.template: l10n_pe.group48 +DEL account.group.template: l10n_pe.group49 +DEL account.group.template: l10n_pe.group5 +DEL account.group.template: l10n_pe.group50 +DEL account.group.template: l10n_pe.group51 +DEL account.group.template: l10n_pe.group52 +DEL account.group.template: l10n_pe.group56 +DEL account.group.template: l10n_pe.group57 +DEL account.group.template: l10n_pe.group58 +DEL account.group.template: l10n_pe.group59 +DEL account.group.template: l10n_pe.group6 +DEL account.group.template: l10n_pe.group60 +DEL account.group.template: l10n_pe.group61 +DEL account.group.template: l10n_pe.group62 +DEL account.group.template: l10n_pe.group63 +DEL account.group.template: l10n_pe.group64 +DEL account.group.template: l10n_pe.group65 +DEL account.group.template: l10n_pe.group66 +DEL account.group.template: l10n_pe.group67 +DEL account.group.template: l10n_pe.group68 +DEL account.group.template: l10n_pe.group69 +DEL account.group.template: l10n_pe.group7 +DEL account.group.template: l10n_pe.group70 +DEL account.group.template: l10n_pe.group71 +DEL account.group.template: l10n_pe.group72 +DEL account.group.template: l10n_pe.group73 +DEL account.group.template: l10n_pe.group74 +DEL account.group.template: l10n_pe.group75 +DEL account.group.template: l10n_pe.group76 +DEL account.group.template: l10n_pe.group77 +DEL account.group.template: l10n_pe.group78 +DEL account.group.template: l10n_pe.group79 +DEL account.group.template: l10n_pe.group8 +DEL account.group.template: l10n_pe.group80 +DEL account.group.template: l10n_pe.group81 +DEL account.group.template: l10n_pe.group82 +DEL account.group.template: l10n_pe.group83 +DEL account.group.template: l10n_pe.group84 +DEL account.group.template: l10n_pe.group85 +DEL account.group.template: l10n_pe.group88 +DEL account.group.template: l10n_pe.group89 +# NOTHING TO DO: New CoA loading system + +DEL account.tax.group: l10n_pe.tax_group_det (noupdate) +DEL account.tax.group: l10n_pe.tax_group_exo (noupdate) +DEL account.tax.group: l10n_pe.tax_group_exp (noupdate) +DEL account.tax.group: l10n_pe.tax_group_gra (noupdate) +DEL account.tax.group: l10n_pe.tax_group_icbper (noupdate) +DEL account.tax.group: l10n_pe.tax_group_igv (noupdate) +DEL account.tax.group: l10n_pe.tax_group_igv_g_ng (noupdate) +DEL account.tax.group: l10n_pe.tax_group_igv_ng (noupdate) +DEL account.tax.group: l10n_pe.tax_group_ina (noupdate) +DEL account.tax.group: l10n_pe.tax_group_isc (noupdate) +DEL account.tax.group: l10n_pe.tax_group_ivap (noupdate) +DEL account.tax.group: l10n_pe.tax_group_other (noupdate) +DEL account.tax.group: l10n_pe.tax_group_ret (noupdate) +# NOTHING TO DO: The xml id refactor is handled by account post-migration + +DEL account.tax.template: l10n_pe.purchase_tax_exo +DEL account.tax.template: l10n_pe.purchase_tax_exp_0 +DEL account.tax.template: l10n_pe.purchase_tax_gra +DEL account.tax.template: l10n_pe.purchase_tax_igv_18 +DEL account.tax.template: l10n_pe.purchase_tax_igv_18_included +DEL account.tax.template: l10n_pe.purchase_tax_ina +DEL account.tax.template: l10n_pe.sale_tax_exo +DEL account.tax.template: l10n_pe.sale_tax_exp +DEL account.tax.template: l10n_pe.sale_tax_gra +DEL account.tax.template: l10n_pe.sale_tax_ics_0 +DEL account.tax.template: l10n_pe.sale_tax_igv_18 +DEL account.tax.template: l10n_pe.sale_tax_igv_18_included +DEL account.tax.template: l10n_pe.sale_tax_igv_18_ng +DEL account.tax.template: l10n_pe.sale_tax_igv_18g_ng +DEL account.tax.template: l10n_pe.sale_tax_ina +# NOTHING TO DO: New CoA loading system + +NEW res.bank: l10n_pe.peruvian_baiopep1_bank +NEW res.bank: l10n_pe.peruvian_bconpepl_bank +NEW res.bank: l10n_pe.peruvian_bcplpepl_bank +NEW res.bank: l10n_pe.peruvian_bdcmpepl_bank +NEW res.bank: l10n_pe.peruvian_belppepl_bank +NEW res.bank: l10n_pe.peruvian_bifspepl_bank +NEW res.bank: l10n_pe.peruvian_binppepl_bank +NEW res.bank: l10n_pe.peruvian_bnpepep1_bank +NEW res.bank: l10n_pe.peruvian_bsappepl_bank +NEW res.bank: l10n_pe.peruvian_bsudpepl_bank +NEW res.bank: l10n_pe.peruvian_cbolpep1_bank +NEW res.bank: l10n_pe.peruvian_citipep1_bank +NEW res.bank: l10n_pe.peruvian_citipepl_bank +NEW res.bank: l10n_pe.peruvian_cjsipep1_bank +NEW res.bank: l10n_pe.peruvian_cofdpepl_bank +NEW res.bank: l10n_pe.peruvian_crhcpep1001_bank +NEW res.bank: l10n_pe.peruvian_crhcpep1_bank +NEW res.bank: l10n_pe.peruvian_national_bank +# NOTHING TO DO: New records From 18626156e8698829455114b2ea22df98f14b09a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20-=20Le=20Filament?= <30716308+remi-filament@users.noreply.github.com> Date: Mon, 23 Feb 2026 18:47:29 +0100 Subject: [PATCH 38/71] [OU-ADD] l10n_fr: Migration scripts --- docsource/modules160-170.rst | 10 +- .../l10n_fr/17.0.2.1/post-migration.py | 34 + .../scripts/l10n_fr/17.0.2.1/pre-migration.py | 30 + .../17.0.2.1/upgrade_analysis_work.txt | 1000 +++++++++++++++++ 4 files changed, 1069 insertions(+), 5 deletions(-) create mode 100644 openupgrade_scripts/scripts/l10n_fr/17.0.2.1/post-migration.py create mode 100644 openupgrade_scripts/scripts/l10n_fr/17.0.2.1/pre-migration.py create mode 100644 openupgrade_scripts/scripts/l10n_fr/17.0.2.1/upgrade_analysis_work.txt diff --git a/docsource/modules160-170.rst b/docsource/modules160-170.rst index 8845cd7867bd..354178824f86 100644 --- a/docsource/modules160-170.rst +++ b/docsource/modules160-170.rst @@ -364,19 +364,19 @@ Module coverage 16.0 -> 17.0 +---------------------------------------------------+----------------------+-------------------------------------------------+ | l10n_fi_sale | | | +---------------------------------------------------+----------------------+-------------------------------------------------+ -| l10n_fr | | | +| l10n_fr | Done | | +---------------------------------------------------+----------------------+-------------------------------------------------+ -| l10n_fr_facturx_chorus_pro | |No DB layout changes. | +| l10n_fr_facturx_chorus_pro | Nothing to do |No DB layout changes. | +---------------------------------------------------+----------------------+-------------------------------------------------+ -| l10n_fr_fec | |No DB layout changes. | +| l10n_fr_fec | Nothing to do |No DB layout changes. | +---------------------------------------------------+----------------------+-------------------------------------------------+ | |new| l10n_fr_hr_holidays | | | +---------------------------------------------------+----------------------+-------------------------------------------------+ | |new| l10n_fr_hr_work_entry_holidays | | | +---------------------------------------------------+----------------------+-------------------------------------------------+ -| l10n_fr_invoice_addr | |No DB layout changes. | +| l10n_fr_invoice_addr | Nothing to do |No DB layout changes. | +---------------------------------------------------+----------------------+-------------------------------------------------+ -| l10n_fr_pos_cert | |No DB layout changes. | +| l10n_fr_pos_cert | Nothing to do |No DB layout changes. | +---------------------------------------------------+----------------------+-------------------------------------------------+ | |new| l10n_ga | | | +---------------------------------------------------+----------------------+-------------------------------------------------+ diff --git a/openupgrade_scripts/scripts/l10n_fr/17.0.2.1/post-migration.py b/openupgrade_scripts/scripts/l10n_fr/17.0.2.1/post-migration.py new file mode 100644 index 000000000000..33ebf68dc967 --- /dev/null +++ b/openupgrade_scripts/scripts/l10n_fr/17.0.2.1/post-migration.py @@ -0,0 +1,34 @@ +# Copyright 2026 Le Filament +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). +from openupgradelib import openupgrade + + +def _assign_default_rounding_account(env): + fr_company_ids = ( + env["res.company"] + .search([]) + .filtered(lambda c: c.country_code in c._get_france_country_codes()) + ) + for company in fr_company_ids: + company.l10n_fr_rounding_difference_loss_account_id = env.ref( + f"account.{company.id}_pcg_4768", False + ) + company.l10n_fr_rounding_difference_profit_account_id = env.ref( + f"account.{company.id}_pcg_4778", False + ) + + +@openupgrade.migrate() +def migrate(env, version): + _assign_default_rounding_account(env) + l10n_fr_xmlids = [ + "tax_group_tva_0", + "tax_group_tva_10", + "tax_group_tva_20", + "tax_group_tva_21", + "tax_group_tva_55", + "tax_group_tva_85", + ] + openupgrade.delete_records_safely_by_xml_id( + env, [f"l10n_fr.{ref}" for ref in l10n_fr_xmlids] + ) diff --git a/openupgrade_scripts/scripts/l10n_fr/17.0.2.1/pre-migration.py b/openupgrade_scripts/scripts/l10n_fr/17.0.2.1/pre-migration.py new file mode 100644 index 000000000000..14d78db8ade9 --- /dev/null +++ b/openupgrade_scripts/scripts/l10n_fr/17.0.2.1/pre-migration.py @@ -0,0 +1,30 @@ +# Copyright 2026 Le Filament +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). +from openupgradelib import openupgrade + + +def _remove_autocreated_expression(env): + openupgrade.logged_query( + env.cr, + """ + DELETE FROM account_report_expression + WHERE label='balance' + AND report_line_id IN ( + SELECT res_id FROM ir_model_data + WHERE module='l10n_fr' + AND name in ( + 'tax_report_16', 'tax_report_23', 'tax_report_TIC_total', + 'tax_report_X4', 'tax_report_Y1', 'tax_report_Y2', + 'tax_report_Y3', 'tax_report_Z4', 'tax_report_32') + AND model='account.report.line') + AND id NOT IN ( + SELECT res_id FROM ir_model_data + WHERE module='l10n_fr' AND model='account.report.expression' + ) + """, + ) + + +@openupgrade.migrate() +def migrate(env, version): + _remove_autocreated_expression(env) diff --git a/openupgrade_scripts/scripts/l10n_fr/17.0.2.1/upgrade_analysis_work.txt b/openupgrade_scripts/scripts/l10n_fr/17.0.2.1/upgrade_analysis_work.txt new file mode 100644 index 000000000000..df0055444968 --- /dev/null +++ b/openupgrade_scripts/scripts/l10n_fr/17.0.2.1/upgrade_analysis_work.txt @@ -0,0 +1,1000 @@ +---Models in module 'l10n_fr'--- +---Fields in module 'l10n_fr'--- +l10n_fr / res.company / l10n_fr_rounding_difference_loss_account_id (many2one): NEW relation: account.account +l10n_fr / res.company / l10n_fr_rounding_difference_profit_account_id (many2one): NEW relation: account.account +# DONE post-migration: initialize with default accounts + +---XML records in module 'l10n_fr'--- +DEL account.account.template: l10n_fr.fr_pcg_pay +DEL account.account.template: l10n_fr.fr_pcg_recv +DEL account.account.template: l10n_fr.fr_pcg_recv_pos +DEL account.account.template: l10n_fr.pcg_1011 +DEL account.account.template: l10n_fr.pcg_1012 +DEL account.account.template: l10n_fr.pcg_1013 +DEL account.account.template: l10n_fr.pcg_10131 +DEL account.account.template: l10n_fr.pcg_10132 +DEL account.account.template: l10n_fr.pcg_1018 +DEL account.account.template: l10n_fr.pcg_102 +DEL account.account.template: l10n_fr.pcg_1041 +DEL account.account.template: l10n_fr.pcg_1042 +DEL account.account.template: l10n_fr.pcg_1043 +DEL account.account.template: l10n_fr.pcg_1044 +DEL account.account.template: l10n_fr.pcg_1045 +DEL account.account.template: l10n_fr.pcg_105_account +DEL account.account.template: l10n_fr.pcg_1061 +DEL account.account.template: l10n_fr.pcg_1062 +DEL account.account.template: l10n_fr.pcg_1063 +DEL account.account.template: l10n_fr.pcg_1064 +DEL account.account.template: l10n_fr.pcg_1068 +DEL account.account.template: l10n_fr.pcg_107 +DEL account.account.template: l10n_fr.pcg_108 +DEL account.account.template: l10n_fr.pcg_109 +DEL account.account.template: l10n_fr.pcg_110 +DEL account.account.template: l10n_fr.pcg_119 +DEL account.account.template: l10n_fr.pcg_120 +DEL account.account.template: l10n_fr.pcg_1209 +DEL account.account.template: l10n_fr.pcg_129 +DEL account.account.template: l10n_fr.pcg_131_account +DEL account.account.template: l10n_fr.pcg_139_account +DEL account.account.template: l10n_fr.pcg_143_account +DEL account.account.template: l10n_fr.pcg_145 +DEL account.account.template: l10n_fr.pcg_148 +DEL account.account.template: l10n_fr.pcg_14_account +DEL account.account.template: l10n_fr.pcg_1511 +DEL account.account.template: l10n_fr.pcg_1512 +DEL account.account.template: l10n_fr.pcg_1514 +DEL account.account.template: l10n_fr.pcg_1515 +DEL account.account.template: l10n_fr.pcg_1516 +DEL account.account.template: l10n_fr.pcg_1518 +DEL account.account.template: l10n_fr.pcg_1521 +DEL account.account.template: l10n_fr.pcg_1522 +DEL account.account.template: l10n_fr.pcg_1523 +DEL account.account.template: l10n_fr.pcg_1524 +DEL account.account.template: l10n_fr.pcg_1525 +DEL account.account.template: l10n_fr.pcg_1526 +DEL account.account.template: l10n_fr.pcg_1527 +DEL account.account.template: l10n_fr.pcg_161 +DEL account.account.template: l10n_fr.pcg_1618 +DEL account.account.template: l10n_fr.pcg_162 +DEL account.account.template: l10n_fr.pcg_163 +DEL account.account.template: l10n_fr.pcg_1638 +DEL account.account.template: l10n_fr.pcg_164 +DEL account.account.template: l10n_fr.pcg_1648 +DEL account.account.template: l10n_fr.pcg_1651 +DEL account.account.template: l10n_fr.pcg_1655 +DEL account.account.template: l10n_fr.pcg_1658 +DEL account.account.template: l10n_fr.pcg_1661 +DEL account.account.template: l10n_fr.pcg_1662 +DEL account.account.template: l10n_fr.pcg_1668 +DEL account.account.template: l10n_fr.pcg_1671 +DEL account.account.template: l10n_fr.pcg_16718 +DEL account.account.template: l10n_fr.pcg_1674 +DEL account.account.template: l10n_fr.pcg_16748 +DEL account.account.template: l10n_fr.pcg_1675 +DEL account.account.template: l10n_fr.pcg_16758 +DEL account.account.template: l10n_fr.pcg_1681 +DEL account.account.template: l10n_fr.pcg_1685 +DEL account.account.template: l10n_fr.pcg_1687 +DEL account.account.template: l10n_fr.pcg_1688 +DEL account.account.template: l10n_fr.pcg_169 +DEL account.account.template: l10n_fr.pcg_171 +DEL account.account.template: l10n_fr.pcg_174 +DEL account.account.template: l10n_fr.pcg_178_account +DEL account.account.template: l10n_fr.pcg_181 +DEL account.account.template: l10n_fr.pcg_186 +DEL account.account.template: l10n_fr.pcg_187 +DEL account.account.template: l10n_fr.pcg_188 +DEL account.account.template: l10n_fr.pcg_2011 +DEL account.account.template: l10n_fr.pcg_2012 +DEL account.account.template: l10n_fr.pcg_20121 +DEL account.account.template: l10n_fr.pcg_20122 +DEL account.account.template: l10n_fr.pcg_2013 +DEL account.account.template: l10n_fr.pcg_203 +DEL account.account.template: l10n_fr.pcg_205 +DEL account.account.template: l10n_fr.pcg_206 +DEL account.account.template: l10n_fr.pcg_207 +DEL account.account.template: l10n_fr.pcg_208 +DEL account.account.template: l10n_fr.pcg_2111 +DEL account.account.template: l10n_fr.pcg_2112 +DEL account.account.template: l10n_fr.pcg_2113 +DEL account.account.template: l10n_fr.pcg_2114 +DEL account.account.template: l10n_fr.pcg_2115 +DEL account.account.template: l10n_fr.pcg_212 +DEL account.account.template: l10n_fr.pcg_2131 +DEL account.account.template: l10n_fr.pcg_2135 +DEL account.account.template: l10n_fr.pcg_2138_account +DEL account.account.template: l10n_fr.pcg_214 +DEL account.account.template: l10n_fr.pcg_21511 +DEL account.account.template: l10n_fr.pcg_21514 +DEL account.account.template: l10n_fr.pcg_21531 +DEL account.account.template: l10n_fr.pcg_21534 +DEL account.account.template: l10n_fr.pcg_2154 +DEL account.account.template: l10n_fr.pcg_2155 +DEL account.account.template: l10n_fr.pcg_2157 +DEL account.account.template: l10n_fr.pcg_2181 +DEL account.account.template: l10n_fr.pcg_2182 +DEL account.account.template: l10n_fr.pcg_2183 +DEL account.account.template: l10n_fr.pcg_2184 +DEL account.account.template: l10n_fr.pcg_2185 +DEL account.account.template: l10n_fr.pcg_2186 +DEL account.account.template: l10n_fr.pcg_2187 +DEL account.account.template: l10n_fr.pcg_22 +DEL account.account.template: l10n_fr.pcg_231_account +DEL account.account.template: l10n_fr.pcg_232 +DEL account.account.template: l10n_fr.pcg_237 +DEL account.account.template: l10n_fr.pcg_238_account +DEL account.account.template: l10n_fr.pcg_2611 +DEL account.account.template: l10n_fr.pcg_2618 +DEL account.account.template: l10n_fr.pcg_262 +DEL account.account.template: l10n_fr.pcg_266 +DEL account.account.template: l10n_fr.pcg_2661 +DEL account.account.template: l10n_fr.pcg_2671 +DEL account.account.template: l10n_fr.pcg_2674 +DEL account.account.template: l10n_fr.pcg_2675 +DEL account.account.template: l10n_fr.pcg_2676 +DEL account.account.template: l10n_fr.pcg_2677 +DEL account.account.template: l10n_fr.pcg_2678 +DEL account.account.template: l10n_fr.pcg_2681 +DEL account.account.template: l10n_fr.pcg_2688 +DEL account.account.template: l10n_fr.pcg_269 +DEL account.account.template: l10n_fr.pcg_2711 +DEL account.account.template: l10n_fr.pcg_2718 +DEL account.account.template: l10n_fr.pcg_2721 +DEL account.account.template: l10n_fr.pcg_2722 +DEL account.account.template: l10n_fr.pcg_273 +DEL account.account.template: l10n_fr.pcg_2741 +DEL account.account.template: l10n_fr.pcg_2742 +DEL account.account.template: l10n_fr.pcg_2743 +DEL account.account.template: l10n_fr.pcg_2748 +DEL account.account.template: l10n_fr.pcg_2751 +DEL account.account.template: l10n_fr.pcg_2755 +DEL account.account.template: l10n_fr.pcg_2761 +DEL account.account.template: l10n_fr.pcg_27682 +DEL account.account.template: l10n_fr.pcg_27684 +DEL account.account.template: l10n_fr.pcg_27685 +DEL account.account.template: l10n_fr.pcg_27688 +DEL account.account.template: l10n_fr.pcg_2771 +DEL account.account.template: l10n_fr.pcg_2772 +DEL account.account.template: l10n_fr.pcg_278 +DEL account.account.template: l10n_fr.pcg_279 +DEL account.account.template: l10n_fr.pcg_2801 +DEL account.account.template: l10n_fr.pcg_2803 +DEL account.account.template: l10n_fr.pcg_2805 +DEL account.account.template: l10n_fr.pcg_2806 +DEL account.account.template: l10n_fr.pcg_2807 +DEL account.account.template: l10n_fr.pcg_2808 +DEL account.account.template: l10n_fr.pcg_28081 +DEL account.account.template: l10n_fr.pcg_2812 +DEL account.account.template: l10n_fr.pcg_2813 +DEL account.account.template: l10n_fr.pcg_2814 +DEL account.account.template: l10n_fr.pcg_2815 +DEL account.account.template: l10n_fr.pcg_2818 +DEL account.account.template: l10n_fr.pcg_28187 +DEL account.account.template: l10n_fr.pcg_282 +DEL account.account.template: l10n_fr.pcg_2901 +DEL account.account.template: l10n_fr.pcg_2903 +DEL account.account.template: l10n_fr.pcg_2905 +DEL account.account.template: l10n_fr.pcg_2906 +DEL account.account.template: l10n_fr.pcg_2907 +DEL account.account.template: l10n_fr.pcg_2908 +DEL account.account.template: l10n_fr.pcg_29081 +DEL account.account.template: l10n_fr.pcg_29187 +DEL account.account.template: l10n_fr.pcg_292 +DEL account.account.template: l10n_fr.pcg_2931 +DEL account.account.template: l10n_fr.pcg_2932 +DEL account.account.template: l10n_fr.pcg_2961 +DEL account.account.template: l10n_fr.pcg_2962 +DEL account.account.template: l10n_fr.pcg_2966 +DEL account.account.template: l10n_fr.pcg_2967 +DEL account.account.template: l10n_fr.pcg_2968 +DEL account.account.template: l10n_fr.pcg_2971 +DEL account.account.template: l10n_fr.pcg_2972 +DEL account.account.template: l10n_fr.pcg_2973 +DEL account.account.template: l10n_fr.pcg_2974 +DEL account.account.template: l10n_fr.pcg_2975 +DEL account.account.template: l10n_fr.pcg_2976 +DEL account.account.template: l10n_fr.pcg_29787 +DEL account.account.template: l10n_fr.pcg_31_account +DEL account.account.template: l10n_fr.pcg_321_account +DEL account.account.template: l10n_fr.pcg_3221 +DEL account.account.template: l10n_fr.pcg_3222 +DEL account.account.template: l10n_fr.pcg_3223 +DEL account.account.template: l10n_fr.pcg_3224 +DEL account.account.template: l10n_fr.pcg_3225 +DEL account.account.template: l10n_fr.pcg_3261 +DEL account.account.template: l10n_fr.pcg_3265 +DEL account.account.template: l10n_fr.pcg_3267 +DEL account.account.template: l10n_fr.pcg_331_account +DEL account.account.template: l10n_fr.pcg_335_account +DEL account.account.template: l10n_fr.pcg_341_account +DEL account.account.template: l10n_fr.pcg_345_account +DEL account.account.template: l10n_fr.pcg_351_account +DEL account.account.template: l10n_fr.pcg_355_account +DEL account.account.template: l10n_fr.pcg_3581 +DEL account.account.template: l10n_fr.pcg_3585 +DEL account.account.template: l10n_fr.pcg_3586 +DEL account.account.template: l10n_fr.pcg_36 +DEL account.account.template: l10n_fr.pcg_37_account +DEL account.account.template: l10n_fr.pcg_38 +DEL account.account.template: l10n_fr.pcg_391_account +DEL account.account.template: l10n_fr.pcg_392_account +DEL account.account.template: l10n_fr.pcg_393_account +DEL account.account.template: l10n_fr.pcg_394_account +DEL account.account.template: l10n_fr.pcg_395_account +DEL account.account.template: l10n_fr.pcg_397_account +DEL account.account.template: l10n_fr.pcg_400 +DEL account.account.template: l10n_fr.pcg_4017 +DEL account.account.template: l10n_fr.pcg_403 +DEL account.account.template: l10n_fr.pcg_4041 +DEL account.account.template: l10n_fr.pcg_4047 +DEL account.account.template: l10n_fr.pcg_405 +DEL account.account.template: l10n_fr.pcg_4081 +DEL account.account.template: l10n_fr.pcg_4084 +DEL account.account.template: l10n_fr.pcg_4088 +DEL account.account.template: l10n_fr.pcg_4091 +DEL account.account.template: l10n_fr.pcg_4096 +DEL account.account.template: l10n_fr.pcg_40971 +DEL account.account.template: l10n_fr.pcg_40974 +DEL account.account.template: l10n_fr.pcg_4098 +DEL account.account.template: l10n_fr.pcg_410 +DEL account.account.template: l10n_fr.pcg_4117 +DEL account.account.template: l10n_fr.pcg_413 +DEL account.account.template: l10n_fr.pcg_416 +DEL account.account.template: l10n_fr.pcg_4181 +DEL account.account.template: l10n_fr.pcg_4188 +DEL account.account.template: l10n_fr.pcg_4191 +DEL account.account.template: l10n_fr.pcg_4196 +DEL account.account.template: l10n_fr.pcg_4197 +DEL account.account.template: l10n_fr.pcg_4198 +DEL account.account.template: l10n_fr.pcg_421 +DEL account.account.template: l10n_fr.pcg_422 +DEL account.account.template: l10n_fr.pcg_4246 +DEL account.account.template: l10n_fr.pcg_4248 +DEL account.account.template: l10n_fr.pcg_425 +DEL account.account.template: l10n_fr.pcg_426 +DEL account.account.template: l10n_fr.pcg_427 +DEL account.account.template: l10n_fr.pcg_4282 +DEL account.account.template: l10n_fr.pcg_4284 +DEL account.account.template: l10n_fr.pcg_4286 +DEL account.account.template: l10n_fr.pcg_431 +DEL account.account.template: l10n_fr.pcg_437 +DEL account.account.template: l10n_fr.pcg_4382 +DEL account.account.template: l10n_fr.pcg_4386 +DEL account.account.template: l10n_fr.pcg_439 +DEL account.account.template: l10n_fr.pcg_441_account +DEL account.account.template: l10n_fr.pcg_4421 +DEL account.account.template: l10n_fr.pcg_4422 +DEL account.account.template: l10n_fr.pcg_4423 +DEL account.account.template: l10n_fr.pcg_444 +DEL account.account.template: l10n_fr.pcg_4452 +DEL account.account.template: l10n_fr.pcg_44521 +DEL account.account.template: l10n_fr.pcg_4453 +DEL account.account.template: l10n_fr.pcg_44531 +DEL account.account.template: l10n_fr.pcg_44551 +DEL account.account.template: l10n_fr.pcg_44558 +DEL account.account.template: l10n_fr.pcg_44562 +DEL account.account.template: l10n_fr.pcg_44563 +DEL account.account.template: l10n_fr.pcg_44564 +DEL account.account.template: l10n_fr.pcg_44566 +DEL account.account.template: l10n_fr.pcg_445662 +DEL account.account.template: l10n_fr.pcg_445663 +DEL account.account.template: l10n_fr.pcg_44567 +DEL account.account.template: l10n_fr.pcg_44568 +DEL account.account.template: l10n_fr.pcg_44571 +DEL account.account.template: l10n_fr.pcg_44574 +DEL account.account.template: l10n_fr.pcg_44578 +DEL account.account.template: l10n_fr.pcg_445800 +DEL account.account.template: l10n_fr.pcg_44581 +DEL account.account.template: l10n_fr.pcg_44583 +DEL account.account.template: l10n_fr.pcg_44584 +DEL account.account.template: l10n_fr.pcg_44586 +DEL account.account.template: l10n_fr.pcg_44587 +DEL account.account.template: l10n_fr.pcg_446 +DEL account.account.template: l10n_fr.pcg_447 +DEL account.account.template: l10n_fr.pcg_4481 +DEL account.account.template: l10n_fr.pcg_44811 +DEL account.account.template: l10n_fr.pcg_44812 +DEL account.account.template: l10n_fr.pcg_4482 +DEL account.account.template: l10n_fr.pcg_449 +DEL account.account.template: l10n_fr.pcg_451 +DEL account.account.template: l10n_fr.pcg_4551 +DEL account.account.template: l10n_fr.pcg_4558 +DEL account.account.template: l10n_fr.pcg_45611 +DEL account.account.template: l10n_fr.pcg_45615 +DEL account.account.template: l10n_fr.pcg_45621 +DEL account.account.template: l10n_fr.pcg_45625 +DEL account.account.template: l10n_fr.pcg_4563 +DEL account.account.template: l10n_fr.pcg_4564 +DEL account.account.template: l10n_fr.pcg_4566 +DEL account.account.template: l10n_fr.pcg_4567 +DEL account.account.template: l10n_fr.pcg_457 +DEL account.account.template: l10n_fr.pcg_4581 +DEL account.account.template: l10n_fr.pcg_4588 +DEL account.account.template: l10n_fr.pcg_462 +DEL account.account.template: l10n_fr.pcg_464 +DEL account.account.template: l10n_fr.pcg_465 +DEL account.account.template: l10n_fr.pcg_467 +DEL account.account.template: l10n_fr.pcg_468_account +DEL account.account.template: l10n_fr.pcg_471 +DEL account.account.template: l10n_fr.pcg_472 +DEL account.account.template: l10n_fr.pcg_473 +DEL account.account.template: l10n_fr.pcg_4741 +DEL account.account.template: l10n_fr.pcg_4742 +DEL account.account.template: l10n_fr.pcg_4746 +DEL account.account.template: l10n_fr.pcg_4751 +DEL account.account.template: l10n_fr.pcg_4752 +DEL account.account.template: l10n_fr.pcg_4756 +DEL account.account.template: l10n_fr.pcg_4761 +DEL account.account.template: l10n_fr.pcg_4762 +DEL account.account.template: l10n_fr.pcg_4768 +DEL account.account.template: l10n_fr.pcg_4771 +DEL account.account.template: l10n_fr.pcg_4772 +DEL account.account.template: l10n_fr.pcg_4778 +DEL account.account.template: l10n_fr.pcg_478 +DEL account.account.template: l10n_fr.pcg_4781 +DEL account.account.template: l10n_fr.pcg_481_account +DEL account.account.template: l10n_fr.pcg_486 +DEL account.account.template: l10n_fr.pcg_487 +DEL account.account.template: l10n_fr.pcg_4886 +DEL account.account.template: l10n_fr.pcg_4887 +DEL account.account.template: l10n_fr.pcg_491 +DEL account.account.template: l10n_fr.pcg_4951 +DEL account.account.template: l10n_fr.pcg_4955 +DEL account.account.template: l10n_fr.pcg_4958 +DEL account.account.template: l10n_fr.pcg_4962 +DEL account.account.template: l10n_fr.pcg_4965 +DEL account.account.template: l10n_fr.pcg_4967 +DEL account.account.template: l10n_fr.pcg_502 +DEL account.account.template: l10n_fr.pcg_5021 +DEL account.account.template: l10n_fr.pcg_5022 +DEL account.account.template: l10n_fr.pcg_5031 +DEL account.account.template: l10n_fr.pcg_5035 +DEL account.account.template: l10n_fr.pcg_504 +DEL account.account.template: l10n_fr.pcg_505 +DEL account.account.template: l10n_fr.pcg_5061 +DEL account.account.template: l10n_fr.pcg_5065 +DEL account.account.template: l10n_fr.pcg_507 +DEL account.account.template: l10n_fr.pcg_5081 +DEL account.account.template: l10n_fr.pcg_5082 +DEL account.account.template: l10n_fr.pcg_5088 +DEL account.account.template: l10n_fr.pcg_509 +DEL account.account.template: l10n_fr.pcg_5111 +DEL account.account.template: l10n_fr.pcg_5112 +DEL account.account.template: l10n_fr.pcg_5113 +DEL account.account.template: l10n_fr.pcg_5114 +DEL account.account.template: l10n_fr.pcg_5121 +DEL account.account.template: l10n_fr.pcg_5124 +DEL account.account.template: l10n_fr.pcg_517 +DEL account.account.template: l10n_fr.pcg_5181 +DEL account.account.template: l10n_fr.pcg_5188 +DEL account.account.template: l10n_fr.pcg_5191 +DEL account.account.template: l10n_fr.pcg_5193 +DEL account.account.template: l10n_fr.pcg_5198 +DEL account.account.template: l10n_fr.pcg_52 +DEL account.account.template: l10n_fr.pcg_53_account +DEL account.account.template: l10n_fr.pcg_58_account +DEL account.account.template: l10n_fr.pcg_5903 +DEL account.account.template: l10n_fr.pcg_5904 +DEL account.account.template: l10n_fr.pcg_5906 +DEL account.account.template: l10n_fr.pcg_5908 +DEL account.account.template: l10n_fr.pcg_601_account +DEL account.account.template: l10n_fr.pcg_6021_account +DEL account.account.template: l10n_fr.pcg_60221 +DEL account.account.template: l10n_fr.pcg_60222 +DEL account.account.template: l10n_fr.pcg_60223 +DEL account.account.template: l10n_fr.pcg_60224 +DEL account.account.template: l10n_fr.pcg_60225 +DEL account.account.template: l10n_fr.pcg_60261 +DEL account.account.template: l10n_fr.pcg_60262 +DEL account.account.template: l10n_fr.pcg_60265 +DEL account.account.template: l10n_fr.pcg_60267 +DEL account.account.template: l10n_fr.pcg_6031 +DEL account.account.template: l10n_fr.pcg_6032 +DEL account.account.template: l10n_fr.pcg_6037 +DEL account.account.template: l10n_fr.pcg_604 +DEL account.account.template: l10n_fr.pcg_605 +DEL account.account.template: l10n_fr.pcg_6061 +DEL account.account.template: l10n_fr.pcg_6063 +DEL account.account.template: l10n_fr.pcg_6064 +DEL account.account.template: l10n_fr.pcg_6068 +DEL account.account.template: l10n_fr.pcg_607_account +DEL account.account.template: l10n_fr.pcg_608 +DEL account.account.template: l10n_fr.pcg_6091 +DEL account.account.template: l10n_fr.pcg_6092 +DEL account.account.template: l10n_fr.pcg_6094 +DEL account.account.template: l10n_fr.pcg_6095 +DEL account.account.template: l10n_fr.pcg_6096 +DEL account.account.template: l10n_fr.pcg_6097 +DEL account.account.template: l10n_fr.pcg_6098 +DEL account.account.template: l10n_fr.pcg_611 +DEL account.account.template: l10n_fr.pcg_6122 +DEL account.account.template: l10n_fr.pcg_6125 +DEL account.account.template: l10n_fr.pcg_6132 +DEL account.account.template: l10n_fr.pcg_6135 +DEL account.account.template: l10n_fr.pcg_614 +DEL account.account.template: l10n_fr.pcg_6152 +DEL account.account.template: l10n_fr.pcg_6155 +DEL account.account.template: l10n_fr.pcg_6156 +DEL account.account.template: l10n_fr.pcg_6161 +DEL account.account.template: l10n_fr.pcg_6162 +DEL account.account.template: l10n_fr.pcg_61636 +DEL account.account.template: l10n_fr.pcg_61637 +DEL account.account.template: l10n_fr.pcg_61638 +DEL account.account.template: l10n_fr.pcg_6164 +DEL account.account.template: l10n_fr.pcg_6165 +DEL account.account.template: l10n_fr.pcg_617 +DEL account.account.template: l10n_fr.pcg_6181 +DEL account.account.template: l10n_fr.pcg_6183 +DEL account.account.template: l10n_fr.pcg_6185 +DEL account.account.template: l10n_fr.pcg_619 +DEL account.account.template: l10n_fr.pcg_6211 +DEL account.account.template: l10n_fr.pcg_6214 +DEL account.account.template: l10n_fr.pcg_6221 +DEL account.account.template: l10n_fr.pcg_6222 +DEL account.account.template: l10n_fr.pcg_6224 +DEL account.account.template: l10n_fr.pcg_6225 +DEL account.account.template: l10n_fr.pcg_6226 +DEL account.account.template: l10n_fr.pcg_6227 +DEL account.account.template: l10n_fr.pcg_6228 +DEL account.account.template: l10n_fr.pcg_6231 +DEL account.account.template: l10n_fr.pcg_6232 +DEL account.account.template: l10n_fr.pcg_6233 +DEL account.account.template: l10n_fr.pcg_6234 +DEL account.account.template: l10n_fr.pcg_6235 +DEL account.account.template: l10n_fr.pcg_6236 +DEL account.account.template: l10n_fr.pcg_6237 +DEL account.account.template: l10n_fr.pcg_6238 +DEL account.account.template: l10n_fr.pcg_6241 +DEL account.account.template: l10n_fr.pcg_6242 +DEL account.account.template: l10n_fr.pcg_6243 +DEL account.account.template: l10n_fr.pcg_6244 +DEL account.account.template: l10n_fr.pcg_6247 +DEL account.account.template: l10n_fr.pcg_6248 +DEL account.account.template: l10n_fr.pcg_6251 +DEL account.account.template: l10n_fr.pcg_6255 +DEL account.account.template: l10n_fr.pcg_6256 +DEL account.account.template: l10n_fr.pcg_6257 +DEL account.account.template: l10n_fr.pcg_626 +DEL account.account.template: l10n_fr.pcg_6271 +DEL account.account.template: l10n_fr.pcg_6272 +DEL account.account.template: l10n_fr.pcg_6275 +DEL account.account.template: l10n_fr.pcg_6276 +DEL account.account.template: l10n_fr.pcg_6278 +DEL account.account.template: l10n_fr.pcg_6281 +DEL account.account.template: l10n_fr.pcg_6284 +DEL account.account.template: l10n_fr.pcg_629 +DEL account.account.template: l10n_fr.pcg_6311 +DEL account.account.template: l10n_fr.pcg_6314 +DEL account.account.template: l10n_fr.pcg_6318 +DEL account.account.template: l10n_fr.pcg_6331 +DEL account.account.template: l10n_fr.pcg_6332 +DEL account.account.template: l10n_fr.pcg_6333 +DEL account.account.template: l10n_fr.pcg_6334 +DEL account.account.template: l10n_fr.pcg_6335 +DEL account.account.template: l10n_fr.pcg_6338 +DEL account.account.template: l10n_fr.pcg_63511 +DEL account.account.template: l10n_fr.pcg_63512 +DEL account.account.template: l10n_fr.pcg_63513 +DEL account.account.template: l10n_fr.pcg_63514 +DEL account.account.template: l10n_fr.pcg_6352 +DEL account.account.template: l10n_fr.pcg_6353 +DEL account.account.template: l10n_fr.pcg_63541 +DEL account.account.template: l10n_fr.pcg_6358 +DEL account.account.template: l10n_fr.pcg_6371 +DEL account.account.template: l10n_fr.pcg_6372 +DEL account.account.template: l10n_fr.pcg_6374 +DEL account.account.template: l10n_fr.pcg_6378 +DEL account.account.template: l10n_fr.pcg_638 +DEL account.account.template: l10n_fr.pcg_6411 +DEL account.account.template: l10n_fr.pcg_6412 +DEL account.account.template: l10n_fr.pcg_6413 +DEL account.account.template: l10n_fr.pcg_6414 +DEL account.account.template: l10n_fr.pcg_6415 +DEL account.account.template: l10n_fr.pcg_644 +DEL account.account.template: l10n_fr.pcg_6451 +DEL account.account.template: l10n_fr.pcg_6452 +DEL account.account.template: l10n_fr.pcg_6453 +DEL account.account.template: l10n_fr.pcg_6454 +DEL account.account.template: l10n_fr.pcg_6458 +DEL account.account.template: l10n_fr.pcg_646 +DEL account.account.template: l10n_fr.pcg_6471 +DEL account.account.template: l10n_fr.pcg_6472 +DEL account.account.template: l10n_fr.pcg_6474 +DEL account.account.template: l10n_fr.pcg_6475 +DEL account.account.template: l10n_fr.pcg_648 +DEL account.account.template: l10n_fr.pcg_649 +DEL account.account.template: l10n_fr.pcg_6511 +DEL account.account.template: l10n_fr.pcg_6516 +DEL account.account.template: l10n_fr.pcg_6518 +DEL account.account.template: l10n_fr.pcg_653 +DEL account.account.template: l10n_fr.pcg_6541 +DEL account.account.template: l10n_fr.pcg_6544 +DEL account.account.template: l10n_fr.pcg_6551 +DEL account.account.template: l10n_fr.pcg_6555 +DEL account.account.template: l10n_fr.pcg_657 +DEL account.account.template: l10n_fr.pcg_6581 +DEL account.account.template: l10n_fr.pcg_6582 +DEL account.account.template: l10n_fr.pcg_6583 +DEL account.account.template: l10n_fr.pcg_6584 +DEL account.account.template: l10n_fr.pcg_6588 +DEL account.account.template: l10n_fr.pcg_66116 +DEL account.account.template: l10n_fr.pcg_66117 +DEL account.account.template: l10n_fr.pcg_6612 +DEL account.account.template: l10n_fr.pcg_6615 +DEL account.account.template: l10n_fr.pcg_6616 +DEL account.account.template: l10n_fr.pcg_6617 +DEL account.account.template: l10n_fr.pcg_66181 +DEL account.account.template: l10n_fr.pcg_66188 +DEL account.account.template: l10n_fr.pcg_664 +DEL account.account.template: l10n_fr.pcg_665 +DEL account.account.template: l10n_fr.pcg_666 +DEL account.account.template: l10n_fr.pcg_6671 +DEL account.account.template: l10n_fr.pcg_6672 +DEL account.account.template: l10n_fr.pcg_6673 +DEL account.account.template: l10n_fr.pcg_6674 +DEL account.account.template: l10n_fr.pcg_668 +DEL account.account.template: l10n_fr.pcg_6683 +DEL account.account.template: l10n_fr.pcg_669 +DEL account.account.template: l10n_fr.pcg_672 +DEL account.account.template: l10n_fr.pcg_678_account +DEL account.account.template: l10n_fr.pcg_6811 +DEL account.account.template: l10n_fr.pcg_68111 +DEL account.account.template: l10n_fr.pcg_68112 +DEL account.account.template: l10n_fr.pcg_6815 +DEL account.account.template: l10n_fr.pcg_68161 +DEL account.account.template: l10n_fr.pcg_68162 +DEL account.account.template: l10n_fr.pcg_68173 +DEL account.account.template: l10n_fr.pcg_68174 +DEL account.account.template: l10n_fr.pcg_6861 +DEL account.account.template: l10n_fr.pcg_6862 +DEL account.account.template: l10n_fr.pcg_6865 +DEL account.account.template: l10n_fr.pcg_68662 +DEL account.account.template: l10n_fr.pcg_68665 +DEL account.account.template: l10n_fr.pcg_6871 +DEL account.account.template: l10n_fr.pcg_68725 +DEL account.account.template: l10n_fr.pcg_6873 +DEL account.account.template: l10n_fr.pcg_6874 +DEL account.account.template: l10n_fr.pcg_6875 +DEL account.account.template: l10n_fr.pcg_6876 +DEL account.account.template: l10n_fr.pcg_691 +DEL account.account.template: l10n_fr.pcg_6951 +DEL account.account.template: l10n_fr.pcg_6952 +DEL account.account.template: l10n_fr.pcg_6954 +DEL account.account.template: l10n_fr.pcg_696 +DEL account.account.template: l10n_fr.pcg_6981 +DEL account.account.template: l10n_fr.pcg_6989 +DEL account.account.template: l10n_fr.pcg_699 +DEL account.account.template: l10n_fr.pcg_701_account +DEL account.account.template: l10n_fr.pcg_702 +DEL account.account.template: l10n_fr.pcg_703 +DEL account.account.template: l10n_fr.pcg_704_account +DEL account.account.template: l10n_fr.pcg_705 +DEL account.account.template: l10n_fr.pcg_706 +DEL account.account.template: l10n_fr.pcg_707_account +DEL account.account.template: l10n_fr.pcg_7081 +DEL account.account.template: l10n_fr.pcg_7082 +DEL account.account.template: l10n_fr.pcg_7083 +DEL account.account.template: l10n_fr.pcg_7084 +DEL account.account.template: l10n_fr.pcg_7085 +DEL account.account.template: l10n_fr.pcg_7086 +DEL account.account.template: l10n_fr.pcg_7087 +DEL account.account.template: l10n_fr.pcg_7088 +DEL account.account.template: l10n_fr.pcg_7091 +DEL account.account.template: l10n_fr.pcg_7092 +DEL account.account.template: l10n_fr.pcg_7094 +DEL account.account.template: l10n_fr.pcg_7095 +DEL account.account.template: l10n_fr.pcg_7096 +DEL account.account.template: l10n_fr.pcg_7097 +DEL account.account.template: l10n_fr.pcg_7098 +DEL account.account.template: l10n_fr.pcg_71331 +DEL account.account.template: l10n_fr.pcg_71335 +DEL account.account.template: l10n_fr.pcg_71341 +DEL account.account.template: l10n_fr.pcg_71345 +DEL account.account.template: l10n_fr.pcg_71351 +DEL account.account.template: l10n_fr.pcg_71355 +DEL account.account.template: l10n_fr.pcg_71358 +DEL account.account.template: l10n_fr.pcg_721 +DEL account.account.template: l10n_fr.pcg_722 +DEL account.account.template: l10n_fr.pcg_741 +DEL account.account.template: l10n_fr.pcg_742 +DEL account.account.template: l10n_fr.pcg_747 +DEL account.account.template: l10n_fr.pcg_7511 +DEL account.account.template: l10n_fr.pcg_7516 +DEL account.account.template: l10n_fr.pcg_7518 +DEL account.account.template: l10n_fr.pcg_752 +DEL account.account.template: l10n_fr.pcg_753 +DEL account.account.template: l10n_fr.pcg_754 +DEL account.account.template: l10n_fr.pcg_7551 +DEL account.account.template: l10n_fr.pcg_7555 +DEL account.account.template: l10n_fr.pcg_757 +DEL account.account.template: l10n_fr.pcg_7581 +DEL account.account.template: l10n_fr.pcg_7582 +DEL account.account.template: l10n_fr.pcg_7583 +DEL account.account.template: l10n_fr.pcg_7584 +DEL account.account.template: l10n_fr.pcg_7585 +DEL account.account.template: l10n_fr.pcg_7586 +DEL account.account.template: l10n_fr.pcg_7587 +DEL account.account.template: l10n_fr.pcg_7588 +DEL account.account.template: l10n_fr.pcg_7611 +DEL account.account.template: l10n_fr.pcg_7612 +DEL account.account.template: l10n_fr.pcg_7616 +DEL account.account.template: l10n_fr.pcg_7617 +DEL account.account.template: l10n_fr.pcg_7621 +DEL account.account.template: l10n_fr.pcg_7626 +DEL account.account.template: l10n_fr.pcg_7627 +DEL account.account.template: l10n_fr.pcg_7631 +DEL account.account.template: l10n_fr.pcg_7638 +DEL account.account.template: l10n_fr.pcg_764 +DEL account.account.template: l10n_fr.pcg_765 +DEL account.account.template: l10n_fr.pcg_766 +DEL account.account.template: l10n_fr.pcg_7671 +DEL account.account.template: l10n_fr.pcg_7672 +DEL account.account.template: l10n_fr.pcg_7673 +DEL account.account.template: l10n_fr.pcg_7674 +DEL account.account.template: l10n_fr.pcg_7683 +DEL account.account.template: l10n_fr.pcg_772 +DEL account.account.template: l10n_fr.pcg_778_account +DEL account.account.template: l10n_fr.pcg_7811 +DEL account.account.template: l10n_fr.pcg_78111 +DEL account.account.template: l10n_fr.pcg_78112 +DEL account.account.template: l10n_fr.pcg_7815 +DEL account.account.template: l10n_fr.pcg_7816 +DEL account.account.template: l10n_fr.pcg_78161 +DEL account.account.template: l10n_fr.pcg_78162 +DEL account.account.template: l10n_fr.pcg_7817 +DEL account.account.template: l10n_fr.pcg_78173 +DEL account.account.template: l10n_fr.pcg_78174 +DEL account.account.template: l10n_fr.pcg_7865 +DEL account.account.template: l10n_fr.pcg_78662 +DEL account.account.template: l10n_fr.pcg_78665 +DEL account.account.template: l10n_fr.pcg_78725 +DEL account.account.template: l10n_fr.pcg_7873 +DEL account.account.template: l10n_fr.pcg_7874 +DEL account.account.template: l10n_fr.pcg_7875 +DEL account.account.template: l10n_fr.pcg_7876 +DEL account.chart.template: l10n_fr.l10n_fr_pcg_chart_template +DEL account.fiscal.position.tax.template: l10n_fr.fp_tax_template_impexp_ha_intermediaire +DEL account.fiscal.position.tax.template: l10n_fr.fp_tax_template_impexp_ha_normale +DEL account.fiscal.position.tax.template: l10n_fr.fp_tax_template_impexp_ha_reduite +DEL account.fiscal.position.tax.template: l10n_fr.fp_tax_template_impexp_ha_specifique +DEL account.fiscal.position.tax.template: l10n_fr.fp_tax_template_impexp_ha_super_reduite +DEL account.fiscal.position.tax.template: l10n_fr.fp_tax_template_impexp_vt_intermediaire +DEL account.fiscal.position.tax.template: l10n_fr.fp_tax_template_impexp_vt_intermediaire_encaissement +DEL account.fiscal.position.tax.template: l10n_fr.fp_tax_template_impexp_vt_intermediaire_encaissement_ttc +DEL account.fiscal.position.tax.template: l10n_fr.fp_tax_template_impexp_vt_intermediaire_ttc +DEL account.fiscal.position.tax.template: l10n_fr.fp_tax_template_impexp_vt_normale +DEL account.fiscal.position.tax.template: l10n_fr.fp_tax_template_impexp_vt_normale_encaissement +DEL account.fiscal.position.tax.template: l10n_fr.fp_tax_template_impexp_vt_normale_encaissement_ttc +DEL account.fiscal.position.tax.template: l10n_fr.fp_tax_template_impexp_vt_normale_ttc +DEL account.fiscal.position.tax.template: l10n_fr.fp_tax_template_impexp_vt_reduite +DEL account.fiscal.position.tax.template: l10n_fr.fp_tax_template_impexp_vt_reduite_encaissement +DEL account.fiscal.position.tax.template: l10n_fr.fp_tax_template_impexp_vt_reduite_encaissement_ttc +DEL account.fiscal.position.tax.template: l10n_fr.fp_tax_template_impexp_vt_reduite_ttc +DEL account.fiscal.position.tax.template: l10n_fr.fp_tax_template_impexp_vt_specifique +DEL account.fiscal.position.tax.template: l10n_fr.fp_tax_template_impexp_vt_specifique_ttc +DEL account.fiscal.position.tax.template: l10n_fr.fp_tax_template_impexp_vt_super_reduite +DEL account.fiscal.position.tax.template: l10n_fr.fp_tax_template_impexp_vt_super_reduite_encaissement +DEL account.fiscal.position.tax.template: l10n_fr.fp_tax_template_impexp_vt_super_reduite_encaissement_ttc +DEL account.fiscal.position.tax.template: l10n_fr.fp_tax_template_impexp_vt_super_reduite_ttc +DEL account.fiscal.position.tax.template: l10n_fr.fp_tax_template_intraeub2b_ha_encaissement_deduc +DEL account.fiscal.position.tax.template: l10n_fr.fp_tax_template_intraeub2b_ha_encaissement_deduc_intermediaire +DEL account.fiscal.position.tax.template: l10n_fr.fp_tax_template_intraeub2b_ha_encaissement_reduite_deduc +DEL account.fiscal.position.tax.template: l10n_fr.fp_tax_template_intraeub2b_ha_encaissement_super_reduite_deduc +DEL account.fiscal.position.tax.template: l10n_fr.fp_tax_template_intraeub2b_ha_intermediaire_deduc +DEL account.fiscal.position.tax.template: l10n_fr.fp_tax_template_intraeub2b_ha_normale_deduc +DEL account.fiscal.position.tax.template: l10n_fr.fp_tax_template_intraeub2b_ha_reduite_deduc +DEL account.fiscal.position.tax.template: l10n_fr.fp_tax_template_intraeub2b_ha_specifique_deduc +DEL account.fiscal.position.tax.template: l10n_fr.fp_tax_template_intraeub2b_ha_super_reduite_deduc +DEL account.fiscal.position.tax.template: l10n_fr.fp_tax_template_intraeub2b_vt_intermediaire +DEL account.fiscal.position.tax.template: l10n_fr.fp_tax_template_intraeub2b_vt_intermediaire_encaissement +DEL account.fiscal.position.tax.template: l10n_fr.fp_tax_template_intraeub2b_vt_intermediaire_encaissement_ttc +DEL account.fiscal.position.tax.template: l10n_fr.fp_tax_template_intraeub2b_vt_intermediaire_ttc +DEL account.fiscal.position.tax.template: l10n_fr.fp_tax_template_intraeub2b_vt_normale +DEL account.fiscal.position.tax.template: l10n_fr.fp_tax_template_intraeub2b_vt_normale_encaissement +DEL account.fiscal.position.tax.template: l10n_fr.fp_tax_template_intraeub2b_vt_normale_encaissement_ttc +DEL account.fiscal.position.tax.template: l10n_fr.fp_tax_template_intraeub2b_vt_normale_ttc +DEL account.fiscal.position.tax.template: l10n_fr.fp_tax_template_intraeub2b_vt_reduite +DEL account.fiscal.position.tax.template: l10n_fr.fp_tax_template_intraeub2b_vt_reduite_encaissement +DEL account.fiscal.position.tax.template: l10n_fr.fp_tax_template_intraeub2b_vt_reduite_encaissement_ttc +DEL account.fiscal.position.tax.template: l10n_fr.fp_tax_template_intraeub2b_vt_reduite_ttc +DEL account.fiscal.position.tax.template: l10n_fr.fp_tax_template_intraeub2b_vt_specifique +DEL account.fiscal.position.tax.template: l10n_fr.fp_tax_template_intraeub2b_vt_specifique_ttc +DEL account.fiscal.position.tax.template: l10n_fr.fp_tax_template_intraeub2b_vt_super_reduite +DEL account.fiscal.position.tax.template: l10n_fr.fp_tax_template_intraeub2b_vt_super_reduite_encaissement +DEL account.fiscal.position.tax.template: l10n_fr.fp_tax_template_intraeub2b_vt_super_reduite_encaissement_ttc +DEL account.fiscal.position.tax.template: l10n_fr.fp_tax_template_intraeub2b_vt_super_reduite_ttc +DEL account.group.template: l10n_fr.pcg_10 +DEL account.group.template: l10n_fr.pcg_101 +DEL account.group.template: l10n_fr.pcg_104 +DEL account.group.template: l10n_fr.pcg_106 +DEL account.group.template: l10n_fr.pcg_11 +DEL account.group.template: l10n_fr.pcg_12 +DEL account.group.template: l10n_fr.pcg_13 +DEL account.group.template: l10n_fr.pcg_15 +DEL account.group.template: l10n_fr.pcg_151 +DEL account.group.template: l10n_fr.pcg_152 +DEL account.group.template: l10n_fr.pcg_158 +DEL account.group.template: l10n_fr.pcg_16 +DEL account.group.template: l10n_fr.pcg_165 +DEL account.group.template: l10n_fr.pcg_166 +DEL account.group.template: l10n_fr.pcg_167 +DEL account.group.template: l10n_fr.pcg_168 +DEL account.group.template: l10n_fr.pcg_17 +DEL account.group.template: l10n_fr.pcg_18 +DEL account.group.template: l10n_fr.pcg_20 +DEL account.group.template: l10n_fr.pcg_201 +DEL account.group.template: l10n_fr.pcg_21 +DEL account.group.template: l10n_fr.pcg_211 +DEL account.group.template: l10n_fr.pcg_213 +DEL account.group.template: l10n_fr.pcg_215 +DEL account.group.template: l10n_fr.pcg_2151 +DEL account.group.template: l10n_fr.pcg_2153 +DEL account.group.template: l10n_fr.pcg_218 +DEL account.group.template: l10n_fr.pcg_23 +DEL account.group.template: l10n_fr.pcg_26 +DEL account.group.template: l10n_fr.pcg_261 +DEL account.group.template: l10n_fr.pcg_267 +DEL account.group.template: l10n_fr.pcg_268 +DEL account.group.template: l10n_fr.pcg_27 +DEL account.group.template: l10n_fr.pcg_271 +DEL account.group.template: l10n_fr.pcg_272 +DEL account.group.template: l10n_fr.pcg_274 +DEL account.group.template: l10n_fr.pcg_275 +DEL account.group.template: l10n_fr.pcg_276 +DEL account.group.template: l10n_fr.pcg_2768 +DEL account.group.template: l10n_fr.pcg_277 +DEL account.group.template: l10n_fr.pcg_28 +DEL account.group.template: l10n_fr.pcg_281 +DEL account.group.template: l10n_fr.pcg_29 +DEL account.group.template: l10n_fr.pcg_290 +DEL account.group.template: l10n_fr.pcg_291 +DEL account.group.template: l10n_fr.pcg_293 +DEL account.group.template: l10n_fr.pcg_296 +DEL account.group.template: l10n_fr.pcg_297 +DEL account.group.template: l10n_fr.pcg_32 +DEL account.group.template: l10n_fr.pcg_322 +DEL account.group.template: l10n_fr.pcg_326 +DEL account.group.template: l10n_fr.pcg_33 +DEL account.group.template: l10n_fr.pcg_34 +DEL account.group.template: l10n_fr.pcg_35 +DEL account.group.template: l10n_fr.pcg_358 +DEL account.group.template: l10n_fr.pcg_39 +DEL account.group.template: l10n_fr.pcg_40 +DEL account.group.template: l10n_fr.pcg_401 +DEL account.group.template: l10n_fr.pcg_404 +DEL account.group.template: l10n_fr.pcg_408 +DEL account.group.template: l10n_fr.pcg_409 +DEL account.group.template: l10n_fr.pcg_4097 +DEL account.group.template: l10n_fr.pcg_411 +DEL account.group.template: l10n_fr.pcg_416_group +DEL account.group.template: l10n_fr.pcg_418 +DEL account.group.template: l10n_fr.pcg_419 +DEL account.group.template: l10n_fr.pcg_42 +DEL account.group.template: l10n_fr.pcg_424 +DEL account.group.template: l10n_fr.pcg_428 +DEL account.group.template: l10n_fr.pcg_43 +DEL account.group.template: l10n_fr.pcg_438 +DEL account.group.template: l10n_fr.pcg_44 +DEL account.group.template: l10n_fr.pcg_442 +DEL account.group.template: l10n_fr.pcg_445 +DEL account.group.template: l10n_fr.pcg_4455 +DEL account.group.template: l10n_fr.pcg_4456 +DEL account.group.template: l10n_fr.pcg_4457 +DEL account.group.template: l10n_fr.pcg_448 +DEL account.group.template: l10n_fr.pcg_45 +DEL account.group.template: l10n_fr.pcg_455 +DEL account.group.template: l10n_fr.pcg_456 +DEL account.group.template: l10n_fr.pcg_4561 +DEL account.group.template: l10n_fr.pcg_4562 +DEL account.group.template: l10n_fr.pcg_458 +DEL account.group.template: l10n_fr.pcg_46 +DEL account.group.template: l10n_fr.pcg_47 +DEL account.group.template: l10n_fr.pcg_474_group +DEL account.group.template: l10n_fr.pcg_475_group +DEL account.group.template: l10n_fr.pcg_476 +DEL account.group.template: l10n_fr.pcg_477 +DEL account.group.template: l10n_fr.pcg_48 +DEL account.group.template: l10n_fr.pcg_488 +DEL account.group.template: l10n_fr.pcg_49 +DEL account.group.template: l10n_fr.pcg_495 +DEL account.group.template: l10n_fr.pcg_496 +DEL account.group.template: l10n_fr.pcg_50 +DEL account.group.template: l10n_fr.pcg_503 +DEL account.group.template: l10n_fr.pcg_506 +DEL account.group.template: l10n_fr.pcg_508 +DEL account.group.template: l10n_fr.pcg_51 +DEL account.group.template: l10n_fr.pcg_511 +DEL account.group.template: l10n_fr.pcg_512 +DEL account.group.template: l10n_fr.pcg_518 +DEL account.group.template: l10n_fr.pcg_519 +DEL account.group.template: l10n_fr.pcg_59 +DEL account.group.template: l10n_fr.pcg_60 +DEL account.group.template: l10n_fr.pcg_602 +DEL account.group.template: l10n_fr.pcg_6026 +DEL account.group.template: l10n_fr.pcg_603 +DEL account.group.template: l10n_fr.pcg_606 +DEL account.group.template: l10n_fr.pcg_609 +DEL account.group.template: l10n_fr.pcg_61 +DEL account.group.template: l10n_fr.pcg_612 +DEL account.group.template: l10n_fr.pcg_615 +DEL account.group.template: l10n_fr.pcg_616 +DEL account.group.template: l10n_fr.pcg_6163 +DEL account.group.template: l10n_fr.pcg_618 +DEL account.group.template: l10n_fr.pcg_62 +DEL account.group.template: l10n_fr.pcg_621 +DEL account.group.template: l10n_fr.pcg_622 +DEL account.group.template: l10n_fr.pcg_623 +DEL account.group.template: l10n_fr.pcg_624 +DEL account.group.template: l10n_fr.pcg_625 +DEL account.group.template: l10n_fr.pcg_627 +DEL account.group.template: l10n_fr.pcg_628 +DEL account.group.template: l10n_fr.pcg_63 +DEL account.group.template: l10n_fr.pcg_631 +DEL account.group.template: l10n_fr.pcg_633 +DEL account.group.template: l10n_fr.pcg_635 +DEL account.group.template: l10n_fr.pcg_6351 +DEL account.group.template: l10n_fr.pcg_6354 +DEL account.group.template: l10n_fr.pcg_637 +DEL account.group.template: l10n_fr.pcg_64 +DEL account.group.template: l10n_fr.pcg_641 +DEL account.group.template: l10n_fr.pcg_645 +DEL account.group.template: l10n_fr.pcg_647 +DEL account.group.template: l10n_fr.pcg_65 +DEL account.group.template: l10n_fr.pcg_651 +DEL account.group.template: l10n_fr.pcg_654 +DEL account.group.template: l10n_fr.pcg_655 +DEL account.group.template: l10n_fr.pcg_658_group +DEL account.group.template: l10n_fr.pcg_66 +DEL account.group.template: l10n_fr.pcg_661 +DEL account.group.template: l10n_fr.pcg_6611 +DEL account.group.template: l10n_fr.pcg_6618 +DEL account.group.template: l10n_fr.pcg_667_group +DEL account.group.template: l10n_fr.pcg_67 +DEL account.group.template: l10n_fr.pcg_68 +DEL account.group.template: l10n_fr.pcg_681 +DEL account.group.template: l10n_fr.pcg_6816 +DEL account.group.template: l10n_fr.pcg_6817 +DEL account.group.template: l10n_fr.pcg_686 +DEL account.group.template: l10n_fr.pcg_6866 +DEL account.group.template: l10n_fr.pcg_687 +DEL account.group.template: l10n_fr.pcg_6872 +DEL account.group.template: l10n_fr.pcg_69 +DEL account.group.template: l10n_fr.pcg_695 +DEL account.group.template: l10n_fr.pcg_698 +DEL account.group.template: l10n_fr.pcg_70 +DEL account.group.template: l10n_fr.pcg_708 +DEL account.group.template: l10n_fr.pcg_709 +DEL account.group.template: l10n_fr.pcg_71 +DEL account.group.template: l10n_fr.pcg_713 +DEL account.group.template: l10n_fr.pcg_7133 +DEL account.group.template: l10n_fr.pcg_7134 +DEL account.group.template: l10n_fr.pcg_7135 +DEL account.group.template: l10n_fr.pcg_72 +DEL account.group.template: l10n_fr.pcg_74_group +DEL account.group.template: l10n_fr.pcg_75 +DEL account.group.template: l10n_fr.pcg_751 +DEL account.group.template: l10n_fr.pcg_755 +DEL account.group.template: l10n_fr.pcg_758_group +DEL account.group.template: l10n_fr.pcg_76 +DEL account.group.template: l10n_fr.pcg_761 +DEL account.group.template: l10n_fr.pcg_762 +DEL account.group.template: l10n_fr.pcg_763 +DEL account.group.template: l10n_fr.pcg_767_group +DEL account.group.template: l10n_fr.pcg_768_group +DEL account.group.template: l10n_fr.pcg_77 +DEL account.group.template: l10n_fr.pcg_78 +DEL account.group.template: l10n_fr.pcg_781 +DEL account.group.template: l10n_fr.pcg_786 +DEL account.group.template: l10n_fr.pcg_7866 +DEL account.group.template: l10n_fr.pcg_787 +DEL account.group.template: l10n_fr.pcg_7872 +DEL account.reconcile.model.line.template: l10n_fr.bank_charges_reconcile_model_line +DEL account.reconcile.model.template: l10n_fr.bank_charges_reconcile_model +DEL account.tax.template: l10n_fr.tva_acq_encaissement +DEL account.tax.template: l10n_fr.tva_acq_encaissement_TTC +DEL account.tax.template: l10n_fr.tva_acq_encaissement_reduite +DEL account.tax.template: l10n_fr.tva_acq_encaissement_reduite_TTC +DEL account.tax.template: l10n_fr.tva_acq_encaissement_super_reduite +DEL account.tax.template: l10n_fr.tva_acq_encaissement_super_reduite_TTC +DEL account.tax.template: l10n_fr.tva_acq_intermediaire +DEL account.tax.template: l10n_fr.tva_acq_intermediaire_TTC +DEL account.tax.template: l10n_fr.tva_acq_intermediaire_encaissement +DEL account.tax.template: l10n_fr.tva_acq_intermediaire_encaissement_TTC +DEL account.tax.template: l10n_fr.tva_acq_normale +DEL account.tax.template: l10n_fr.tva_acq_normale_TTC +DEL account.tax.template: l10n_fr.tva_acq_reduite +DEL account.tax.template: l10n_fr.tva_acq_reduite_TTC +DEL account.tax.template: l10n_fr.tva_acq_specifique +DEL account.tax.template: l10n_fr.tva_acq_specifique_TTC +DEL account.tax.template: l10n_fr.tva_acq_super_reduite +DEL account.tax.template: l10n_fr.tva_acq_super_reduite_TTC +DEL account.tax.template: l10n_fr.tva_imm_intermediaire +DEL account.tax.template: l10n_fr.tva_imm_normale +DEL account.tax.template: l10n_fr.tva_imm_reduite +DEL account.tax.template: l10n_fr.tva_imm_specifique +DEL account.tax.template: l10n_fr.tva_imm_super_reduite +DEL account.tax.template: l10n_fr.tva_import_outside_eu_10 +DEL account.tax.template: l10n_fr.tva_import_outside_eu_20 +DEL account.tax.template: l10n_fr.tva_import_outside_eu_2_1 +DEL account.tax.template: l10n_fr.tva_import_outside_eu_5_5 +DEL account.tax.template: l10n_fr.tva_import_outside_eu_8_5 +DEL account.tax.template: l10n_fr.tva_intermediaire +DEL account.tax.template: l10n_fr.tva_intermediaire_encaissement +DEL account.tax.template: l10n_fr.tva_intermediaire_encaissement_ttc +DEL account.tax.template: l10n_fr.tva_intermediaire_ttc +DEL account.tax.template: l10n_fr.tva_intra_intermediaire_biens +DEL account.tax.template: l10n_fr.tva_intra_intermediaire_services +DEL account.tax.template: l10n_fr.tva_intra_normale_biens +DEL account.tax.template: l10n_fr.tva_intra_normale_services +DEL account.tax.template: l10n_fr.tva_intra_reduite_biens +DEL account.tax.template: l10n_fr.tva_intra_reduite_services +DEL account.tax.template: l10n_fr.tva_intra_specifique_biens +DEL account.tax.template: l10n_fr.tva_intra_specifique_services +DEL account.tax.template: l10n_fr.tva_intra_super_reduite_biens +DEL account.tax.template: l10n_fr.tva_intra_super_reduite_services +DEL account.tax.template: l10n_fr.tva_normale +DEL account.tax.template: l10n_fr.tva_normale_encaissement +DEL account.tax.template: l10n_fr.tva_normale_encaissement_ttc +DEL account.tax.template: l10n_fr.tva_normale_ttc +DEL account.tax.template: l10n_fr.tva_purchase_good_fuel +DEL account.tax.template: l10n_fr.tva_purchase_good_fuel_TTC +DEL account.tax.template: l10n_fr.tva_purchase_imm_normale +DEL account.tax.template: l10n_fr.tva_purchase_service_0 +DEL account.tax.template: l10n_fr.tva_purchase_service_20_import +DEL account.tax.template: l10n_fr.tva_reduite +DEL account.tax.template: l10n_fr.tva_reduite_encaissement +DEL account.tax.template: l10n_fr.tva_reduite_encaissement_ttc +DEL account.tax.template: l10n_fr.tva_reduite_ttc +DEL account.tax.template: l10n_fr.tva_sale_good_0 +DEL account.tax.template: l10n_fr.tva_sale_good_export_0 +DEL account.tax.template: l10n_fr.tva_sale_good_intra_0 +DEL account.tax.template: l10n_fr.tva_sale_service_0 +DEL account.tax.template: l10n_fr.tva_sale_service_export_0 +DEL account.tax.template: l10n_fr.tva_sale_service_intra_0 +DEL account.tax.template: l10n_fr.tva_specifique +DEL account.tax.template: l10n_fr.tva_specifique_ttc +DEL account.tax.template: l10n_fr.tva_super_reduite +DEL account.tax.template: l10n_fr.tva_super_reduite_encaissement +DEL account.tax.template: l10n_fr.tva_super_reduite_encaissement_ttc +DEL account.tax.template: l10n_fr.tva_super_reduite_ttc +# NOTHING TO DO: new COA naming + +NEW account.report.expression: l10n_fr.tax_report_08_taxe_tag_no_rounding +NEW account.report.expression: l10n_fr.tax_report_09_taxe_tag_no_rounding +NEW account.report.expression: l10n_fr.tax_report_10_taxe_tag_no_rounding +NEW account.report.expression: l10n_fr.tax_report_11_taxe_tag_no_rounding +NEW account.report.expression: l10n_fr.tax_report_9B_taxe_tag_no_rounding +NEW account.report.expression: l10n_fr.tax_report_I1_taxe_tag_no_rounding +NEW account.report.expression: l10n_fr.tax_report_I2_taxe_tag_no_rounding +NEW account.report.expression: l10n_fr.tax_report_I3_taxe_tag_no_rounding +NEW account.report.expression: l10n_fr.tax_report_I4_taxe_tag_no_rounding +NEW account.report.expression: l10n_fr.tax_report_I5_taxe_tag_no_rounding +NEW account.report.expression: l10n_fr.tax_report_I6_taxe_tag_no_rounding +NEW account.report.expression: l10n_fr.tax_report_P1_taxe_tag_no_rounding +NEW account.report.expression: l10n_fr.tax_report_P2_taxe_tag_no_rounding +NEW account.report.expression: l10n_fr.tax_report_T1_taxe_tag_no_rounding +NEW account.report.expression: l10n_fr.tax_report_T2_taxe_tag_no_rounding +NEW account.report.expression: l10n_fr.tax_report_T3_taxe_tag_no_rounding +NEW account.report.expression: l10n_fr.tax_report_T4_taxe_tag_no_rounding +NEW account.report.expression: l10n_fr.tax_report_T5_taxe_tag_no_rounding +NEW account.report.expression: l10n_fr.tax_report_T6_taxe_tag_no_rounding +# NOTHING TO DO: new expressions created automatically by Odoo + +NEW account.report.expression: l10n_fr.tax_report_16_formula +NEW account.report.expression: l10n_fr.tax_report_23_formula +NEW account.report.expression: l10n_fr.tax_report_32_formula +NEW account.report.expression: l10n_fr.tax_report_TIC_total_formula +NEW account.report.expression: l10n_fr.tax_report_X4_formula +NEW account.report.expression: l10n_fr.tax_report_Y1_formula +NEW account.report.expression: l10n_fr.tax_report_Y2_formula +NEW account.report.expression: l10n_fr.tax_report_Y3_formula +NEW account.report.expression: l10n_fr.tax_report_Z4_formula +# DONE: pre-migration: remove autocreated expression (based on aggregation_formula) so that Odoo can create these without constraint error - these were added by https://github.com/odoo/odoo/pull/203227 after Odoo 17 initial release + +DEL account.tax.group: l10n_fr.tax_group_tva_0 (noupdate) +DEL account.tax.group: l10n_fr.tax_group_tva_10 (noupdate) +DEL account.tax.group: l10n_fr.tax_group_tva_20 (noupdate) +DEL account.tax.group: l10n_fr.tax_group_tva_21 (noupdate) +DEL account.tax.group: l10n_fr.tax_group_tva_55 (noupdate) +DEL account.tax.group: l10n_fr.tax_group_tva_85 (noupdate) +# DONE: post-migration: safe deletion From bd1197216832a8422caf81bcf7193138e44434c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Ba=C3=B1=C3=B3n?= Date: Tue, 24 Feb 2026 13:41:39 +0100 Subject: [PATCH 39/71] [OU-FIX] l10n_co: Wrong field name TT57833 --- docsource/modules160-170.rst | 2 +- openupgrade_scripts/scripts/l10n_co/17.0.0.9/pre-migration.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docsource/modules160-170.rst b/docsource/modules160-170.rst index 635ecc3a8b8a..342dac573f57 100644 --- a/docsource/modules160-170.rst +++ b/docsource/modules160-170.rst @@ -284,7 +284,7 @@ Module coverage 16.0 -> 17.0 +---------------------------------------------------+----------------------+-------------------------------------------------+ | l10n_cn_city | | | +---------------------------------------------------+----------------------+-------------------------------------------------+ -| l10n_co | | | +| l10n_co | Done | | +---------------------------------------------------+----------------------+-------------------------------------------------+ | l10n_co_pos | | | +---------------------------------------------------+----------------------+-------------------------------------------------+ diff --git a/openupgrade_scripts/scripts/l10n_co/17.0.0.9/pre-migration.py b/openupgrade_scripts/scripts/l10n_co/17.0.0.9/pre-migration.py index 8a2d162e89af..de46a40d0cf5 100644 --- a/openupgrade_scripts/scripts/l10n_co/17.0.0.9/pre-migration.py +++ b/openupgrade_scripts/scripts/l10n_co/17.0.0.9/pre-migration.py @@ -11,7 +11,7 @@ def _disable_obsolete_taxes(env): ("name", "=like", f"%_{xmlid}"), ] ) - taxes = env["account.tax"].browse(imds.mapped("record_id")) + taxes = env["account.tax"].browse(imds.mapped("res_id")) taxes.active = False From e5fc004a4ae6277ecd955a91633385dbd506184e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Ba=C3=B1=C3=B3n?= Date: Mon, 23 Feb 2026 19:42:10 +0100 Subject: [PATCH 40/71] [OU-ADD] l10n_mx: Migration scripts TT57840 --- docsource/modules160-170.rst | 2 +- .../l10n_mx/17.0.2.2/post-migration.py | 44 + .../scripts/l10n_mx/17.0.2.2/pre-migration.py | 50 + .../17.0.2.2/upgrade_analysis_work.txt | 1211 +++++++++++++++++ 4 files changed, 1306 insertions(+), 1 deletion(-) create mode 100644 openupgrade_scripts/scripts/l10n_mx/17.0.2.2/post-migration.py create mode 100644 openupgrade_scripts/scripts/l10n_mx/17.0.2.2/pre-migration.py create mode 100644 openupgrade_scripts/scripts/l10n_mx/17.0.2.2/upgrade_analysis_work.txt diff --git a/docsource/modules160-170.rst b/docsource/modules160-170.rst index 342dac573f57..7cbb9f301ab4 100644 --- a/docsource/modules160-170.rst +++ b/docsource/modules160-170.rst @@ -518,7 +518,7 @@ Module coverage 16.0 -> 17.0 +---------------------------------------------------+----------------------+-------------------------------------------------+ | |del| l10n_multilang | Done |Merged into account. | +---------------------------------------------------+----------------------+-------------------------------------------------+ -| l10n_mx | | | +| l10n_mx | Done | | +---------------------------------------------------+----------------------+-------------------------------------------------+ | l10n_mx_hr | |No DB layout changes. | +---------------------------------------------------+----------------------+-------------------------------------------------+ diff --git a/openupgrade_scripts/scripts/l10n_mx/17.0.2.2/post-migration.py b/openupgrade_scripts/scripts/l10n_mx/17.0.2.2/post-migration.py new file mode 100644 index 000000000000..61f845af459e --- /dev/null +++ b/openupgrade_scripts/scripts/l10n_mx/17.0.2.2/post-migration.py @@ -0,0 +1,44 @@ +# Copyright 2026 Tecnativa - David Bañón Gil +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). +from openupgradelib import openupgrade + + +def _compute_new_tax_type(env): + openupgrade.logged_query( + env.cr, + """ + UPDATE account_tax t + SET l10n_mx_tax_type = + CASE + WHEN c.code = 'MX' THEN 'iva' + ELSE NULL + END + FROM res_country c + WHERE t.country_id = c.id; + """, + ) + + +def _delete_analytic_tags(env): + l10n_mx_xmlids = [ + "tag_diot_0", + "tag_diot_16", + "tag_diot_16_imp", + "tag_diot_16_non_cre", + "tag_diot_8", + "tag_diot_8_non_cre", + "tag_diot_exento", + "tag_diot_ret", + "tag_ieps", + "tag_isr", + "tag_iva", + ] + openupgrade.delete_records_safely_by_xml_id( + env, [f"l10n_mx.{x}" for x in l10n_mx_xmlids] + ) + + +@openupgrade.migrate() +def migrate(env, version): + _delete_analytic_tags(env) + _compute_new_tax_type(env) diff --git a/openupgrade_scripts/scripts/l10n_mx/17.0.2.2/pre-migration.py b/openupgrade_scripts/scripts/l10n_mx/17.0.2.2/pre-migration.py new file mode 100644 index 000000000000..ae87a75f504e --- /dev/null +++ b/openupgrade_scripts/scripts/l10n_mx/17.0.2.2/pre-migration.py @@ -0,0 +1,50 @@ +# Copyright 2026 Tecnativa - David Bañón Gil +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). +from openupgradelib import openupgrade + + +def _backup_tax_type(env): + # l10n_mx_tax_type is now a different field + # old l10n_mx_tax_type is renamed to l10n_mx_factor_type + openupgrade.copy_columns( + env.cr, + {"account_tax": [("l10n_mx_tax_type", "l10n_mx_factor_type", None)]}, + ) + + +def _remove_xml_id_account_fiscal_position(env): + """In 17.0 account.fiscal.position.tax and account.fiscal.position.account don't + have xml_id, so let's remove it for companies with this CoA. + """ + for company in ( + env["res.company"] + .with_context(active_test=False) + .search([("chart_template", "=", "mx")]) + ): + openupgrade.logged_query( + env.cr, + f""" + DELETE FROM ir_model_data + WHERE module='l10n_mx' + AND model IN ( + 'account.fiscal.position.tax', 'account.fiscal.position.account' + ) AND name LIKE '{company.id}_%' + """, + ) + # Also remove xmlids for fiscal position templates + openupgrade.logged_query( + env.cr, + """ + DELETE FROM ir_model_data + WHERE module='l10n_mx' + AND model IN ( + 'account.fiscal.position.template', 'account.fiscal.position.tax.template' + ) + """, + ) + + +@openupgrade.migrate() +def migrate(env, version): + _backup_tax_type(env) + _remove_xml_id_account_fiscal_position(env) diff --git a/openupgrade_scripts/scripts/l10n_mx/17.0.2.2/upgrade_analysis_work.txt b/openupgrade_scripts/scripts/l10n_mx/17.0.2.2/upgrade_analysis_work.txt new file mode 100644 index 000000000000..e5d08c73214e --- /dev/null +++ b/openupgrade_scripts/scripts/l10n_mx/17.0.2.2/upgrade_analysis_work.txt @@ -0,0 +1,1211 @@ +---Models in module 'l10n_mx'--- +---Fields in module 'l10n_mx'--- +l10n_mx / account.tax / l10n_mx_factor_type (selection): NEW selection_keys: ['Cuota', 'Exento', 'Tasa'], hasdefault: default +l10n_mx / account.tax / l10n_mx_tax_type (selection) : selection_keys is now '['ieps', 'isr', 'iva']' ('['Cuota', 'Exento', 'Tasa']') +l10n_mx / account.tax.template / l10n_mx_tax_type (selection) : DEL selection_keys: ['Cuota', 'Exento', 'Tasa'] +# pre-migration: Backup account_tax.l10n_mx_tax_type +# post-migration: Restore backed up column as l10n_mx_factor_type +---XML records in module 'l10n_mx'--- +DEL account.account.tag: l10n_mx.tag_diot_0 +DEL account.account.tag: l10n_mx.tag_diot_16 +DEL account.account.tag: l10n_mx.tag_diot_16_imp +DEL account.account.tag: l10n_mx.tag_diot_16_non_cre +DEL account.account.tag: l10n_mx.tag_diot_8 +DEL account.account.tag: l10n_mx.tag_diot_8_non_cre +DEL account.account.tag: l10n_mx.tag_diot_exento +DEL account.account.tag: l10n_mx.tag_diot_ret +DEL account.account.tag: l10n_mx.tag_ieps +DEL account.account.tag: l10n_mx.tag_isr +DEL account.account.tag: l10n_mx.tag_iva +# DONE: post-migration: Try to delete them cleanly (and if not, marked as noupdate=1 for not being removed) + +DEL account.account.template: l10n_mx.cuenta102_02 +DEL account.account.template: l10n_mx.cuenta105_01 +DEL account.account.template: l10n_mx.cuenta105_02 +DEL account.account.template: l10n_mx.cuenta107_05_01 +DEL account.account.template: l10n_mx.cuenta108_01 +DEL account.account.template: l10n_mx.cuenta108_02 +DEL account.account.template: l10n_mx.cuenta115_01 +DEL account.account.template: l10n_mx.cuenta115_02 +DEL account.account.template: l10n_mx.cuenta115_03 +DEL account.account.template: l10n_mx.cuenta115_04 +DEL account.account.template: l10n_mx.cuenta115_05 +DEL account.account.template: l10n_mx.cuenta115_06 +DEL account.account.template: l10n_mx.cuenta118_01 +DEL account.account.template: l10n_mx.cuenta118_03 +DEL account.account.template: l10n_mx.cuenta119_01 +DEL account.account.template: l10n_mx.cuenta119_03 +DEL account.account.template: l10n_mx.cuenta120_01 +DEL account.account.template: l10n_mx.cuenta120_02 +DEL account.account.template: l10n_mx.cuenta201_01 +DEL account.account.template: l10n_mx.cuenta205_06_01 +DEL account.account.template: l10n_mx.cuenta206_01 +DEL account.account.template: l10n_mx.cuenta206_02 +DEL account.account.template: l10n_mx.cuenta206_05_01 +DEL account.account.template: l10n_mx.cuenta208_01 +DEL account.account.template: l10n_mx.cuenta208_02 +DEL account.account.template: l10n_mx.cuenta209_01 +DEL account.account.template: l10n_mx.cuenta209_02 +DEL account.account.template: l10n_mx.cuenta216_03 +DEL account.account.template: l10n_mx.cuenta216_04 +DEL account.account.template: l10n_mx.cuenta216_10 +DEL account.account.template: l10n_mx.cuenta216_10_20 +DEL account.account.template: l10n_mx.cuenta302_01 +DEL account.account.template: l10n_mx.cuenta304_01 +DEL account.account.template: l10n_mx.cuenta305_01 +DEL account.account.template: l10n_mx.cuenta401_01 +DEL account.account.template: l10n_mx.cuenta501_01 +DEL account.account.template: l10n_mx.cuenta601_84 +DEL account.account.template: l10n_mx.cuenta701_01 +DEL account.account.template: l10n_mx.cuenta702_01 +DEL account.account.template: l10n_mx.cuenta801_01 +DEL account.account.template: l10n_mx.cuenta801_01_99 +DEL account.account.template: l10n_mx.cuenta9993 +DEL account.account.template: l10n_mx.cuenta9994 +DEL account.chart.template: l10n_mx.mx_coa +DEL account.fiscal.position.tax.template: l10n_mx.account_fiscal_position0_purchase (noupdate) +DEL account.fiscal.position.tax.template: l10n_mx.account_fiscal_position0_sale (noupdate) +DEL account.fiscal.position.template: l10n_mx.account_fiscal_position_foreign (noupdate) +DEL account.group.template: l10n_mx.account_group_activos +DEL account.group.template: l10n_mx.account_group_capital_contable +DEL account.group.template: l10n_mx.account_group_costos +DEL account.group.template: l10n_mx.account_group_cuentas_de_orden +DEL account.group.template: l10n_mx.account_group_gastos +DEL account.group.template: l10n_mx.account_group_ingresos +DEL account.group.template: l10n_mx.account_group_pasivos +DEL account.group.template: l10n_mx.account_group_resultado +DEL account.group.template: l10n_mx.account_subgroup__pérdida_en_venta_y/o_baja_de_equipo_de_comunicación_satelital +DEL account.group.template: l10n_mx.account_subgroup_acreedores_diversos_a_corto_plazo +DEL account.group.template: l10n_mx.account_subgroup_acreedores_diversos_a_corto_plazo_extranjero +DEL account.group.template: l10n_mx.account_subgroup_acreedores_diversos_a_corto_plazo_extranjero_parte_relacionada +DEL account.group.template: l10n_mx.account_subgroup_acreedores_diversos_a_corto_plazo_nacional +DEL account.group.template: l10n_mx.account_subgroup_acreedores_diversos_a_corto_plazo_nacional_parte_relacionada +DEL account.group.template: l10n_mx.account_subgroup_acreedores_diversos_a_largo_plazo +DEL account.group.template: l10n_mx.account_subgroup_acreedores_diversos_a_largo_plazo_extranjero +DEL account.group.template: l10n_mx.account_subgroup_acreedores_diversos_a_largo_plazo_extranjero_parte_relacionada +DEL account.group.template: l10n_mx.account_subgroup_acreedores_diversos_a_largo_plazo_nacional +DEL account.group.template: l10n_mx.account_subgroup_acreedores_diversos_a_largo_plazo_nacional_parte_relacionada +DEL account.group.template: l10n_mx.account_subgroup_activo_a_corto_plazo +DEL account.group.template: l10n_mx.account_subgroup_activo_a_largo_plazo +DEL account.group.template: l10n_mx.account_subgroup_activos_biológicos,_vegetales_y_semovientes +DEL account.group.template: l10n_mx.account_subgroup_activos_biológicos,_vegetales_y_semovientes_1 +DEL account.group.template: l10n_mx.account_subgroup_activos_intangibles +DEL account.group.template: l10n_mx.account_subgroup_activos_intangibles_1 +DEL account.group.template: l10n_mx.account_subgroup_actualización_de_pérdidas_fiscales_pendientes_de_amortizar_de_ejercicios_anteriores +DEL account.group.template: l10n_mx.account_subgroup_acumulación_del_ajuste_anual_inflacionario +DEL account.group.template: l10n_mx.account_subgroup_adaptaciones_y_mejoras +DEL account.group.template: l10n_mx.account_subgroup_adaptaciones_y_mejoras_1 +DEL account.group.template: l10n_mx.account_subgroup_agua +DEL account.group.template: l10n_mx.account_subgroup_agua_1 +DEL account.group.template: l10n_mx.account_subgroup_agua_2 +DEL account.group.template: l10n_mx.account_subgroup_agua_3 +DEL account.group.template: l10n_mx.account_subgroup_aguinaldo +DEL account.group.template: l10n_mx.account_subgroup_aguinaldo_1 +DEL account.group.template: l10n_mx.account_subgroup_aguinaldo_2 +DEL account.group.template: l10n_mx.account_subgroup_aguinaldo_3 +DEL account.group.template: l10n_mx.account_subgroup_aguinaldo_4 +DEL account.group.template: l10n_mx.account_subgroup_ajuste_anual_por_inflación_acumulable +DEL account.group.template: l10n_mx.account_subgroup_ajuste_anual_por_inflación_acumulable_1 +DEL account.group.template: l10n_mx.account_subgroup_ajuste_anual_por_inflación_deducible +DEL account.group.template: l10n_mx.account_subgroup_ajuste_anual_por_inflación_deducible_1 +DEL account.group.template: l10n_mx.account_subgroup_amortización_acumulada_de_activos_diferidos +DEL account.group.template: l10n_mx.account_subgroup_amortización_acumulada_de_activos_intangibles +DEL account.group.template: l10n_mx.account_subgroup_amortización_acumulada_de_crédito_mercantil +DEL account.group.template: l10n_mx.account_subgroup_amortización_acumulada_de_gastos_de_instalación +DEL account.group.template: l10n_mx.account_subgroup_amortización_acumulada_de_gastos_de_organización +DEL account.group.template: l10n_mx.account_subgroup_amortización_acumulada_de_gastos_diferidos +DEL account.group.template: l10n_mx.account_subgroup_amortización_acumulada_de_gastos_pre_operativos +DEL account.group.template: l10n_mx.account_subgroup_amortización_acumulada_de_investigación_y_desarrollo_de_mercado +DEL account.group.template: l10n_mx.account_subgroup_amortización_acumulada_de_marcas_y_patentes +DEL account.group.template: l10n_mx.account_subgroup_amortización_acumulada_de_otros_activos_diferidos +DEL account.group.template: l10n_mx.account_subgroup_amortización_acumulada_de_regalías,_asistencia_técnica_y_otros_gastos_diferidos +DEL account.group.template: l10n_mx.account_subgroup_amortización_contable +DEL account.group.template: l10n_mx.account_subgroup_amortización_de_activos_intangibles +DEL account.group.template: l10n_mx.account_subgroup_amortización_de_crédito_mercantil +DEL account.group.template: l10n_mx.account_subgroup_amortización_de_gastos_de_instalación +DEL account.group.template: l10n_mx.account_subgroup_amortización_de_gastos_de_organización +DEL account.group.template: l10n_mx.account_subgroup_amortización_de_gastos_diferidos +DEL account.group.template: l10n_mx.account_subgroup_amortización_de_gastos_pre_operativos +DEL account.group.template: l10n_mx.account_subgroup_amortización_de_investigación_y_desarrollo_de_mercado +DEL account.group.template: l10n_mx.account_subgroup_amortización_de_marcas_y_patentes +DEL account.group.template: l10n_mx.account_subgroup_amortización_de_otros_activos_diferidos +DEL account.group.template: l10n_mx.account_subgroup_amortización_de_regalías,_asistencia_técnica_y_otros_gastos_diferidos +DEL account.group.template: l10n_mx.account_subgroup_anticipo_a_proveedores +DEL account.group.template: l10n_mx.account_subgroup_anticipo_a_proveedores_extranjero +DEL account.group.template: l10n_mx.account_subgroup_anticipo_a_proveedores_extranjero_parte_relacionada +DEL account.group.template: l10n_mx.account_subgroup_anticipo_a_proveedores_nacional +DEL account.group.template: l10n_mx.account_subgroup_anticipo_a_proveedores_nacional_parte_relacionada +DEL account.group.template: l10n_mx.account_subgroup_anticipo_de_cliente +DEL account.group.template: l10n_mx.account_subgroup_anticipo_de_cliente_extranjero +DEL account.group.template: l10n_mx.account_subgroup_anticipo_de_cliente_extranjero_parte_relacionada +DEL account.group.template: l10n_mx.account_subgroup_anticipo_de_cliente_nacional +DEL account.group.template: l10n_mx.account_subgroup_anticipo_de_cliente_nacional_parte_relacionada +DEL account.group.template: l10n_mx.account_subgroup_aportaciones_al_infonavit +DEL account.group.template: l10n_mx.account_subgroup_aportaciones_al_infonavit_1 +DEL account.group.template: l10n_mx.account_subgroup_aportaciones_al_infonavit_2 +DEL account.group.template: l10n_mx.account_subgroup_aportaciones_al_infonavit_3 +DEL account.group.template: l10n_mx.account_subgroup_aportaciones_al_infonavit_4 +DEL account.group.template: l10n_mx.account_subgroup_aportaciones_al_sar +DEL account.group.template: l10n_mx.account_subgroup_aportaciones_al_sar_1 +DEL account.group.template: l10n_mx.account_subgroup_aportaciones_al_sar_2 +DEL account.group.template: l10n_mx.account_subgroup_aportaciones_al_sar_3 +DEL account.group.template: l10n_mx.account_subgroup_aportaciones_al_sar_4 +DEL account.group.template: l10n_mx.account_subgroup_aportaciones_para_el_plan_de_jubilación +DEL account.group.template: l10n_mx.account_subgroup_aportaciones_para_el_plan_de_jubilación_1 +DEL account.group.template: l10n_mx.account_subgroup_aportaciones_para_el_plan_de_jubilación_2 +DEL account.group.template: l10n_mx.account_subgroup_aportaciones_para_el_plan_de_jubilación_3 +DEL account.group.template: l10n_mx.account_subgroup_aportaciones_para_el_plan_de_jubilación_4 +DEL account.group.template: l10n_mx.account_subgroup_aportaciones_para_futuros_aumentos_de_capital +DEL account.group.template: l10n_mx.account_subgroup_aportación_patrimonial +DEL account.group.template: l10n_mx.account_subgroup_arrendamiento_a_personas_físicas_residentes_nacionales +DEL account.group.template: l10n_mx.account_subgroup_arrendamiento_a_personas_físicas_residentes_nacionales_1 +DEL account.group.template: l10n_mx.account_subgroup_arrendamiento_a_personas_físicas_residentes_nacionales_2 +DEL account.group.template: l10n_mx.account_subgroup_arrendamiento_a_personas_físicas_residentes_nacionales_3 +DEL account.group.template: l10n_mx.account_subgroup_arrendamiento_a_personas_morales_residentes_nacionales +DEL account.group.template: l10n_mx.account_subgroup_arrendamiento_a_personas_morales_residentes_nacionales_1 +DEL account.group.template: l10n_mx.account_subgroup_arrendamiento_a_personas_morales_residentes_nacionales_2 +DEL account.group.template: l10n_mx.account_subgroup_arrendamiento_a_personas_morales_residentes_nacionales_3 +DEL account.group.template: l10n_mx.account_subgroup_arrendamiento_a_residentes_del_extranjero +DEL account.group.template: l10n_mx.account_subgroup_arrendamiento_a_residentes_del_extranjero_1 +DEL account.group.template: l10n_mx.account_subgroup_arrendamiento_a_residentes_del_extranjero_2 +DEL account.group.template: l10n_mx.account_subgroup_arrendamiento_a_residentes_del_extranjero_3 +DEL account.group.template: l10n_mx.account_subgroup_arrendamiento_financiero_cobrados_por_anticipado_a_corto_plazo_extranjero +DEL account.group.template: l10n_mx.account_subgroup_arrendamiento_financiero_cobrados_por_anticipado_a_corto_plazo_extranjero_parte_relacionada +DEL account.group.template: l10n_mx.account_subgroup_arrendamiento_financiero_cobrados_por_anticipado_a_corto_plazo_nacional +DEL account.group.template: l10n_mx.account_subgroup_arrendamiento_financiero_cobrados_por_anticipado_a_corto_plazo_nacional_parte_relacionada +DEL account.group.template: l10n_mx.account_subgroup_arrendamiento_financiero_cobrados_por_anticipado_a_largo_plazo_extranjero +DEL account.group.template: l10n_mx.account_subgroup_arrendamiento_financiero_cobrados_por_anticipado_a_largo_plazo_extranjero_parte_relacionada +DEL account.group.template: l10n_mx.account_subgroup_arrendamiento_financiero_cobrados_por_anticipado_a_largo_plazo_nacional +DEL account.group.template: l10n_mx.account_subgroup_arrendamiento_financiero_cobrados_por_anticipado_a_largo_plazo_nacional_parte_relacionada +DEL account.group.template: l10n_mx.account_subgroup_arrendamiento_financiero_pagados_por_anticipado_extranjero +DEL account.group.template: l10n_mx.account_subgroup_arrendamiento_financiero_pagados_por_anticipado_extranjero_parte_relacionada +DEL account.group.template: l10n_mx.account_subgroup_arrendamiento_financiero_pagados_por_anticipado_nacional +DEL account.group.template: l10n_mx.account_subgroup_arrendamiento_financiero_pagados_por_anticipado_nacional_parte_relacionada +DEL account.group.template: l10n_mx.account_subgroup_asimilados_a_salarios +DEL account.group.template: l10n_mx.account_subgroup_asimilados_a_salarios_1 +DEL account.group.template: l10n_mx.account_subgroup_asimilados_a_salarios_2 +DEL account.group.template: l10n_mx.account_subgroup_asimilados_a_salarios_3 +DEL account.group.template: l10n_mx.account_subgroup_asimilados_a_salarios_4 +DEL account.group.template: l10n_mx.account_subgroup_asistencia_técnica +DEL account.group.template: l10n_mx.account_subgroup_asistencia_técnica_1 +DEL account.group.template: l10n_mx.account_subgroup_asistencia_técnica_2 +DEL account.group.template: l10n_mx.account_subgroup_asistencia_técnica_3 +DEL account.group.template: l10n_mx.account_subgroup_automóviles,_autobuses,_camiones_de_carga,_tractocamiones,_montacargas_y_remolques +DEL account.group.template: l10n_mx.account_subgroup_automóviles,_autobuses,_camiones_de_carga,_tractocamiones,_montacargas_y_remolques_1 +DEL account.group.template: l10n_mx.account_subgroup_aviones +DEL account.group.template: l10n_mx.account_subgroup_aviones_1 +DEL account.group.template: l10n_mx.account_subgroup_ayuda_en_gastos_funerarios +DEL account.group.template: l10n_mx.account_subgroup_ayuda_en_gastos_funerarios_1 +DEL account.group.template: l10n_mx.account_subgroup_ayuda_en_gastos_funerarios_2 +DEL account.group.template: l10n_mx.account_subgroup_ayuda_en_gastos_funerarios_3 +DEL account.group.template: l10n_mx.account_subgroup_ayuda_en_gastos_funerarios_4 +DEL account.group.template: l10n_mx.account_subgroup_bancos +DEL account.group.template: l10n_mx.account_subgroup_bancos_extranjeros +DEL account.group.template: l10n_mx.account_subgroup_bancos_nacionales +DEL account.group.template: l10n_mx.account_subgroup_caja +DEL account.group.template: l10n_mx.account_subgroup_caja_y_efectivo +DEL account.group.template: l10n_mx.account_subgroup_capacitación_al_personal +DEL account.group.template: l10n_mx.account_subgroup_capacitación_al_personal_1 +DEL account.group.template: l10n_mx.account_subgroup_capacitación_al_personal_2 +DEL account.group.template: l10n_mx.account_subgroup_capacitación_al_personal_3 +DEL account.group.template: l10n_mx.account_subgroup_capital_fijo +DEL account.group.template: l10n_mx.account_subgroup_capital_social +DEL account.group.template: l10n_mx.account_subgroup_capital_variable +DEL account.group.template: l10n_mx.account_subgroup_cargos_indirectos_de_producción +DEL account.group.template: l10n_mx.account_subgroup_clientes +DEL account.group.template: l10n_mx.account_subgroup_clientes_extranjeros +DEL account.group.template: l10n_mx.account_subgroup_clientes_extranjeros_parte_relacionada +DEL account.group.template: l10n_mx.account_subgroup_clientes_nacionales +DEL account.group.template: l10n_mx.account_subgroup_clientes_nacionales_parte_relacionada +DEL account.group.template: l10n_mx.account_subgroup_cobros_anticipados_a_corto_plazo +DEL account.group.template: l10n_mx.account_subgroup_cobros_anticipados_a_largo_plazo +DEL account.group.template: l10n_mx.account_subgroup_combustibles_y_lubricantes +DEL account.group.template: l10n_mx.account_subgroup_combustibles_y_lubricantes_1 +DEL account.group.template: l10n_mx.account_subgroup_combustibles_y_lubricantes_2 +DEL account.group.template: l10n_mx.account_subgroup_combustibles_y_lubricantes_3 +DEL account.group.template: l10n_mx.account_subgroup_comisiones_bancarias +DEL account.group.template: l10n_mx.account_subgroup_comisiones_por_tarjetas_de_crédito +DEL account.group.template: l10n_mx.account_subgroup_comisiones_por_tarjetas_de_crédito_1 +DEL account.group.template: l10n_mx.account_subgroup_comisiones_sobre_ventas +DEL account.group.template: l10n_mx.account_subgroup_comisiones_sobre_ventas_1 +DEL account.group.template: l10n_mx.account_subgroup_compensaciones +DEL account.group.template: l10n_mx.account_subgroup_compensaciones_1 +DEL account.group.template: l10n_mx.account_subgroup_compensaciones_2 +DEL account.group.template: l10n_mx.account_subgroup_compensaciones_3 +DEL account.group.template: l10n_mx.account_subgroup_compensaciones_4 +DEL account.group.template: l10n_mx.account_subgroup_compras +DEL account.group.template: l10n_mx.account_subgroup_compras_de_importación +DEL account.group.template: l10n_mx.account_subgroup_compras_de_importación_partes_relacionadas +DEL account.group.template: l10n_mx.account_subgroup_compras_nacionales +DEL account.group.template: l10n_mx.account_subgroup_compras_nacionales_parte_relacionada +DEL account.group.template: l10n_mx.account_subgroup_consignación_de_mercancías_recibidas +DEL account.group.template: l10n_mx.account_subgroup_contra_cuenta_cuca +DEL account.group.template: l10n_mx.account_subgroup_contra_cuenta_cuca_de_ejercicios_anteriores +DEL account.group.template: l10n_mx.account_subgroup_contra_cuenta_cufin +DEL account.group.template: l10n_mx.account_subgroup_contra_cuenta_cufin_de_ejercicios_anteriores +DEL account.group.template: l10n_mx.account_subgroup_contra_cuenta_cufinre +DEL account.group.template: l10n_mx.account_subgroup_contra_cuenta_cufinre_de_ejercicios_anteriores +DEL account.group.template: l10n_mx.account_subgroup_contra_cuenta_deducción_de_inversiones +DEL account.group.template: l10n_mx.account_subgroup_contra_cuenta_otras_cuentas_de_orden +DEL account.group.template: l10n_mx.account_subgroup_contra_cuenta_ufin +DEL account.group.template: l10n_mx.account_subgroup_contra_cuenta_utilidad_o_pérdida_fiscal_en_venta_acciones_o_partes_sociales +DEL account.group.template: l10n_mx.account_subgroup_contra_cuenta_utilidad_o_pérdida_fiscal_en_venta_y/o_baja_de_activo_fijo +DEL account.group.template: l10n_mx.account_subgroup_costo_de_activo_fijo +DEL account.group.template: l10n_mx.account_subgroup_costo_de_servicios_(mano_de_obra) +DEL account.group.template: l10n_mx.account_subgroup_costo_de_venta +DEL account.group.template: l10n_mx.account_subgroup_costo_de_venta_y/o_servicio +DEL account.group.template: l10n_mx.account_subgroup_costo_por_baja_de_activo_fijo +DEL account.group.template: l10n_mx.account_subgroup_costo_por_venta_de_activo_fijo +DEL account.group.template: l10n_mx.account_subgroup_crédito_al_diesel_por_acreditar +DEL account.group.template: l10n_mx.account_subgroup_crédito_al_diesel_por_acreditar_1 +DEL account.group.template: l10n_mx.account_subgroup_crédito_fiscal_de_iva_e_ieps_por_la_importación_de_activo_fijo +DEL account.group.template: l10n_mx.account_subgroup_crédito_fiscal_de_iva_e_ieps_por_la_importación_de_activos_fijos_para_empresas_certificadas +DEL account.group.template: l10n_mx.account_subgroup_crédito_fiscal_de_iva_e_ieps_por_la_importación_de_mercancías +DEL account.group.template: l10n_mx.account_subgroup_crédito_fiscal_de_iva_e_ieps_por_la_importación_de_mercancías_para_empresas_certificadas +DEL account.group.template: l10n_mx.account_subgroup_crédito_mercantil +DEL account.group.template: l10n_mx.account_subgroup_crédito_mercantil_1 +DEL account.group.template: l10n_mx.account_subgroup_cuca +DEL account.group.template: l10n_mx.account_subgroup_cuca_de_ejercicios_anteriores +DEL account.group.template: l10n_mx.account_subgroup_cuca_de_ejercicios_anteriores_1 +DEL account.group.template: l10n_mx.account_subgroup_cuca_del_ejercicio +DEL account.group.template: l10n_mx.account_subgroup_cuentas_por_pagar_a_corto_plazo +DEL account.group.template: l10n_mx.account_subgroup_cuentas_por_pagar_a_largo_plazo +DEL account.group.template: l10n_mx.account_subgroup_cuentas_y_documentos_por_cobrar_a_corto_plazo +DEL account.group.template: l10n_mx.account_subgroup_cuentas_y_documentos_por_cobrar_a_corto_plazo_extranjero +DEL account.group.template: l10n_mx.account_subgroup_cuentas_y_documentos_por_cobrar_a_corto_plazo_extranjero_parte_relacionada +DEL account.group.template: l10n_mx.account_subgroup_cuentas_y_documentos_por_cobrar_a_corto_plazo_nacional +DEL account.group.template: l10n_mx.account_subgroup_cuentas_y_documentos_por_cobrar_a_corto_plazo_nacional_parte_relacionada +DEL account.group.template: l10n_mx.account_subgroup_cuentas_y_documentos_por_cobrar_a_largo_plazo +DEL account.group.template: l10n_mx.account_subgroup_cuentas_y_documentos_por_cobrar_a_largo_plazo_extranjero +DEL account.group.template: l10n_mx.account_subgroup_cuentas_y_documentos_por_cobrar_a_largo_plazo_extranjero_parte_relacionada +DEL account.group.template: l10n_mx.account_subgroup_cuentas_y_documentos_por_cobrar_a_largo_plazo_nacional +DEL account.group.template: l10n_mx.account_subgroup_cuentas_y_documentos_por_cobrar_a_largo_plazo_nacional_parte_relacionada +DEL account.group.template: l10n_mx.account_subgroup_cufin +DEL account.group.template: l10n_mx.account_subgroup_cufin_de_ejercicios_anteriores +DEL account.group.template: l10n_mx.account_subgroup_cufin_de_ejercicios_anteriores_1 +DEL account.group.template: l10n_mx.account_subgroup_cufin_del_ejercicio +DEL account.group.template: l10n_mx.account_subgroup_cufinre +DEL account.group.template: l10n_mx.account_subgroup_cufinre_de_ejercicios_anteriores +DEL account.group.template: l10n_mx.account_subgroup_cufinre_de_ejercicios_anteriores_1 +DEL account.group.template: l10n_mx.account_subgroup_cufinre_del_ejercicio +DEL account.group.template: l10n_mx.account_subgroup_cuotas_al_imss +DEL account.group.template: l10n_mx.account_subgroup_cuotas_al_imss_1 +DEL account.group.template: l10n_mx.account_subgroup_cuotas_al_imss_2 +DEL account.group.template: l10n_mx.account_subgroup_cuotas_al_imss_3 +DEL account.group.template: l10n_mx.account_subgroup_cuotas_al_imss_4 +DEL account.group.template: l10n_mx.account_subgroup_cuotas_sindicales +DEL account.group.template: l10n_mx.account_subgroup_cuotas_sindicales_1 +DEL account.group.template: l10n_mx.account_subgroup_cuotas_sindicales_2 +DEL account.group.template: l10n_mx.account_subgroup_cuotas_sindicales_3 +DEL account.group.template: l10n_mx.account_subgroup_cuotas_sindicales_4 +DEL account.group.template: l10n_mx.account_subgroup_cuotas_y_suscripciones +DEL account.group.template: l10n_mx.account_subgroup_cuotas_y_suscripciones_1 +DEL account.group.template: l10n_mx.account_subgroup_cuotas_y_suscripciones_2 +DEL account.group.template: l10n_mx.account_subgroup_cuotas_y_suscripciones_3 +DEL account.group.template: l10n_mx.account_subgroup_deducción_de_inversión +DEL account.group.template: l10n_mx.account_subgroup_deducción_de_inversión_1 +DEL account.group.template: l10n_mx.account_subgroup_deducción_del_ajuste_anual_inflacionario +DEL account.group.template: l10n_mx.account_subgroup_depreciación_acumulada_de_activos_biológicos,_vegetales_y_semovientes +DEL account.group.template: l10n_mx.account_subgroup_depreciación_acumulada_de_activos_fijos +DEL account.group.template: l10n_mx.account_subgroup_depreciación_acumulada_de_adaptaciones_y_mejoras +DEL account.group.template: l10n_mx.account_subgroup_depreciación_acumulada_de_automóviles,_autobuses,_camiones_de_carga,_tractocamiones,_montacargas_y_remolques +DEL account.group.template: l10n_mx.account_subgroup_depreciación_acumulada_de_aviones +DEL account.group.template: l10n_mx.account_subgroup_depreciación_acumulada_de_edificios +DEL account.group.template: l10n_mx.account_subgroup_depreciación_acumulada_de_embarcaciones +DEL account.group.template: l10n_mx.account_subgroup_depreciación_acumulada_de_equipo_de_adaptaciones_para_personas_con_capacidades_diferentes +DEL account.group.template: l10n_mx.account_subgroup_depreciación_acumulada_de_equipo_de_comunicaciones_telefónicas +DEL account.group.template: l10n_mx.account_subgroup_depreciación_acumulada_de_equipo_de_comunicación +DEL account.group.template: l10n_mx.account_subgroup_depreciación_acumulada_de_equipo_de_comunicación_satelital +DEL account.group.template: l10n_mx.account_subgroup_depreciación_acumulada_de_equipo_de_cómputo +DEL account.group.template: l10n_mx.account_subgroup_depreciación_acumulada_de_ferrocarriles +DEL account.group.template: l10n_mx.account_subgroup_depreciación_acumulada_de_maquinaria_y_equipo +DEL account.group.template: l10n_mx.account_subgroup_depreciación_acumulada_de_maquinaria_y_equipo_de_generación_de_energía_de_fuentes_renovables_o_de_sistemas_de_cogeneración_de_electricidad_eficiente +DEL account.group.template: l10n_mx.account_subgroup_depreciación_acumulada_de_mobiliario_y_equipo_de_oficina +DEL account.group.template: l10n_mx.account_subgroup_depreciación_acumulada_de_otra_maquinaria_y_equipo +DEL account.group.template: l10n_mx.account_subgroup_depreciación_acumulada_de_otros_activos_fijos +DEL account.group.template: l10n_mx.account_subgroup_depreciación_acumulada_de_troqueles,_moldes,_matrices_y_herramental +DEL account.group.template: l10n_mx.account_subgroup_depreciación_contable +DEL account.group.template: l10n_mx.account_subgroup_depreciación_de_activos_biológicos,_vegetales_y_semovientes +DEL account.group.template: l10n_mx.account_subgroup_depreciación_de_activos_biológicos,_vegetales_y_semovientes_1 +DEL account.group.template: l10n_mx.account_subgroup_depreciación_de_adaptaciones_y_mejoras +DEL account.group.template: l10n_mx.account_subgroup_depreciación_de_adaptaciones_y_mejoras_1 +DEL account.group.template: l10n_mx.account_subgroup_depreciación_de_automóviles,_autobuses,_camiones_de_carga,_tractocamiones,_montacargas_y_remolques +DEL account.group.template: l10n_mx.account_subgroup_depreciación_de_automóviles,_autobuses,_camiones_de_carga,_tractocamiones,_montacargas_y_remolques_1 +DEL account.group.template: l10n_mx.account_subgroup_depreciación_de_aviones +DEL account.group.template: l10n_mx.account_subgroup_depreciación_de_aviones_1 +DEL account.group.template: l10n_mx.account_subgroup_depreciación_de_edificios +DEL account.group.template: l10n_mx.account_subgroup_depreciación_de_edificios_1 +DEL account.group.template: l10n_mx.account_subgroup_depreciación_de_embarcaciones +DEL account.group.template: l10n_mx.account_subgroup_depreciación_de_embarcaciones_1 +DEL account.group.template: l10n_mx.account_subgroup_depreciación_de_equipo_de_adaptaciones_para_personas_con_capacidades_diferentes +DEL account.group.template: l10n_mx.account_subgroup_depreciación_de_equipo_de_adaptaciones_para_personas_con_capacidades_diferentes_1 +DEL account.group.template: l10n_mx.account_subgroup_depreciación_de_equipo_de_comunicaciones_telefónicas +DEL account.group.template: l10n_mx.account_subgroup_depreciación_de_equipo_de_comunicaciones_telefónicas_1 +DEL account.group.template: l10n_mx.account_subgroup_depreciación_de_equipo_de_comunicación +DEL account.group.template: l10n_mx.account_subgroup_depreciación_de_equipo_de_comunicación_1 +DEL account.group.template: l10n_mx.account_subgroup_depreciación_de_equipo_de_comunicación_satelital +DEL account.group.template: l10n_mx.account_subgroup_depreciación_de_equipo_de_comunicación_satelital_1 +DEL account.group.template: l10n_mx.account_subgroup_depreciación_de_equipo_de_cómputo +DEL account.group.template: l10n_mx.account_subgroup_depreciación_de_equipo_de_cómputo_1 +DEL account.group.template: l10n_mx.account_subgroup_depreciación_de_ferrocarriles +DEL account.group.template: l10n_mx.account_subgroup_depreciación_de_ferrocarriles_1 +DEL account.group.template: l10n_mx.account_subgroup_depreciación_de_maquinaria_y_equipo +DEL account.group.template: l10n_mx.account_subgroup_depreciación_de_maquinaria_y_equipo_1 +DEL account.group.template: l10n_mx.account_subgroup_depreciación_de_maquinaria_y_equipo_de_generación_de_energía_de_fuentes_renovables_o_de_sistemas_de_cogeneración_de_electricidad_eficiente +DEL account.group.template: l10n_mx.account_subgroup_depreciación_de_maquinaria_y_equipo_de_generación_de_energía_de_fuentes_renovables_o_de_sistemas_de_cogeneración_de_electricidad_eficiente_1 +DEL account.group.template: l10n_mx.account_subgroup_depreciación_de_mobiliario_y_equipo_de_oficina +DEL account.group.template: l10n_mx.account_subgroup_depreciación_de_mobiliario_y_equipo_de_oficina_1 +DEL account.group.template: l10n_mx.account_subgroup_depreciación_de_otra_maquinaria_y_equipo +DEL account.group.template: l10n_mx.account_subgroup_depreciación_de_otra_maquinaria_y_equipo_1 +DEL account.group.template: l10n_mx.account_subgroup_depreciación_de_otros_activos_fijos +DEL account.group.template: l10n_mx.account_subgroup_depreciación_de_otros_activos_fijos_1 +DEL account.group.template: l10n_mx.account_subgroup_depreciación_de_troqueles,_moldes,_matrices_y_herramental +DEL account.group.template: l10n_mx.account_subgroup_depreciación_de_troqueles,_moldes,_matrices_y_herramental_1 +DEL account.group.template: l10n_mx.account_subgroup_depósitos_de_arrendamiento_de_bienes_inmuebles +DEL account.group.template: l10n_mx.account_subgroup_depósitos_de_fianzas +DEL account.group.template: l10n_mx.account_subgroup_depósitos_en_garantía +DEL account.group.template: l10n_mx.account_subgroup_derechos_fiduciarios +DEL account.group.template: l10n_mx.account_subgroup_derechos_fiduciarios_1 +DEL account.group.template: l10n_mx.account_subgroup_derechos_fiduciarios_2 +DEL account.group.template: l10n_mx.account_subgroup_derechos_por_pagar +DEL account.group.template: l10n_mx.account_subgroup_despensa +DEL account.group.template: l10n_mx.account_subgroup_despensa_1 +DEL account.group.template: l10n_mx.account_subgroup_despensa_2 +DEL account.group.template: l10n_mx.account_subgroup_despensa_3 +DEL account.group.template: l10n_mx.account_subgroup_despensa_4 +DEL account.group.template: l10n_mx.account_subgroup_destajo +DEL account.group.template: l10n_mx.account_subgroup_destajo_1 +DEL account.group.template: l10n_mx.account_subgroup_destajo_2 +DEL account.group.template: l10n_mx.account_subgroup_destajo_3 +DEL account.group.template: l10n_mx.account_subgroup_destajo_4 +DEL account.group.template: l10n_mx.account_subgroup_deudores_diversos +DEL account.group.template: l10n_mx.account_subgroup_devoluciones,_descuentos_o_bonificaciones_de_otros_ingresos +DEL account.group.template: l10n_mx.account_subgroup_devoluciones,_descuentos_o_bonificaciones_sobre_compras +DEL account.group.template: l10n_mx.account_subgroup_devoluciones,_descuentos_o_bonificaciones_sobre_compras_1 +DEL account.group.template: l10n_mx.account_subgroup_devoluciones,_descuentos_o_bonificaciones_sobre_ingresos +DEL account.group.template: l10n_mx.account_subgroup_devoluciones,_descuentos_o_bonificaciones_sobre_ventas_y/o_servicios_a_la_tasa_general +DEL account.group.template: l10n_mx.account_subgroup_devoluciones,_descuentos_o_bonificaciones_sobre_ventas_y/o_servicios_al_0% +DEL account.group.template: l10n_mx.account_subgroup_devoluciones,_descuentos_o_bonificaciones_sobre_ventas_y/o_servicios_en_zona_fronteriza_norte +DEL account.group.template: l10n_mx.account_subgroup_devoluciones,_descuentos_o_bonificaciones_sobre_ventas_y/o_servicios_exentos +DEL account.group.template: l10n_mx.account_subgroup_dividendo_por_pagar_extranjero +DEL account.group.template: l10n_mx.account_subgroup_dividendo_por_pagar_nacional +DEL account.group.template: l10n_mx.account_subgroup_dividendos_por_pagar +DEL account.group.template: l10n_mx.account_subgroup_dividendos_por_pagar_1 +DEL account.group.template: l10n_mx.account_subgroup_dividendos_por_pagar_extranjeros +DEL account.group.template: l10n_mx.account_subgroup_dividendos_por_pagar_nacionales +DEL account.group.template: l10n_mx.account_subgroup_documentos_bancarios_y_financieros_por_pagar_a_largo_plazo_extranjero +DEL account.group.template: l10n_mx.account_subgroup_documentos_bancarios_y_financieros_por_pagar_a_largo_plazo_nacional +DEL account.group.template: l10n_mx.account_subgroup_documentos_por_pagar_bancario_y_financiero_extranjero +DEL account.group.template: l10n_mx.account_subgroup_documentos_por_pagar_bancario_y_financiero_nacional +DEL account.group.template: l10n_mx.account_subgroup_documentos_y_cuentas_por_pagar_a_corto_plazo_extranjero +DEL account.group.template: l10n_mx.account_subgroup_documentos_y_cuentas_por_pagar_a_corto_plazo_extranjero_parte_relacionada +DEL account.group.template: l10n_mx.account_subgroup_documentos_y_cuentas_por_pagar_a_corto_plazo_nacional +DEL account.group.template: l10n_mx.account_subgroup_documentos_y_cuentas_por_pagar_a_corto_plazo_nacional_parte_relacionada +DEL account.group.template: l10n_mx.account_subgroup_documentos_y_cuentas_por_pagar_a_largo_plazo_extranjero +DEL account.group.template: l10n_mx.account_subgroup_documentos_y_cuentas_por_pagar_a_largo_plazo_extranjero_parte_relacionada +DEL account.group.template: l10n_mx.account_subgroup_documentos_y_cuentas_por_pagar_a_largo_plazo_nacional +DEL account.group.template: l10n_mx.account_subgroup_documentos_y_cuentas_por_pagar_a_largo_plazo_nacional_parte_relacionada +DEL account.group.template: l10n_mx.account_subgroup_donativos_y_ayudas +DEL account.group.template: l10n_mx.account_subgroup_donativos_y_ayudas_1 +DEL account.group.template: l10n_mx.account_subgroup_donativos_y_ayudas_2 +DEL account.group.template: l10n_mx.account_subgroup_donativos_y_ayudas_3 +DEL account.group.template: l10n_mx.account_subgroup_déficit_o_remanente_de_ejercicio_anteriores +DEL account.group.template: l10n_mx.account_subgroup_déficit_o_remanente_del_ejercicio +DEL account.group.template: l10n_mx.account_subgroup_días_festivos +DEL account.group.template: l10n_mx.account_subgroup_días_festivos_1 +DEL account.group.template: l10n_mx.account_subgroup_días_festivos_2 +DEL account.group.template: l10n_mx.account_subgroup_días_festivos_3 +DEL account.group.template: l10n_mx.account_subgroup_días_festivos_4 +DEL account.group.template: l10n_mx.account_subgroup_edificios +DEL account.group.template: l10n_mx.account_subgroup_edificios_1 +DEL account.group.template: l10n_mx.account_subgroup_embarcaciones +DEL account.group.template: l10n_mx.account_subgroup_embarcaciones_1 +DEL account.group.template: l10n_mx.account_subgroup_energía_eléctrica +DEL account.group.template: l10n_mx.account_subgroup_energía_eléctrica_1 +DEL account.group.template: l10n_mx.account_subgroup_energía_eléctrica_2 +DEL account.group.template: l10n_mx.account_subgroup_energía_eléctrica_3 +DEL account.group.template: l10n_mx.account_subgroup_equipo_de_adaptaciones_para_personas_con_capacidades_diferentes +DEL account.group.template: l10n_mx.account_subgroup_equipo_de_adaptaciones_para_personas_con_capacidades_diferentes_1 +DEL account.group.template: l10n_mx.account_subgroup_equipo_de_comunicaciones_telefónicas +DEL account.group.template: l10n_mx.account_subgroup_equipo_de_comunicaciones_telefónicas_1 +DEL account.group.template: l10n_mx.account_subgroup_equipo_de_comunicación +DEL account.group.template: l10n_mx.account_subgroup_equipo_de_comunicación_1 +DEL account.group.template: l10n_mx.account_subgroup_equipo_de_comunicación_satelital +DEL account.group.template: l10n_mx.account_subgroup_equipo_de_comunicación_satelital_1 +DEL account.group.template: l10n_mx.account_subgroup_equipo_de_cómputo +DEL account.group.template: l10n_mx.account_subgroup_equipo_de_cómputo_1 +DEL account.group.template: l10n_mx.account_subgroup_estimación_de_cuentas_incobrables +DEL account.group.template: l10n_mx.account_subgroup_estimación_de_cuentas_incobrables_extranjero +DEL account.group.template: l10n_mx.account_subgroup_estimación_de_cuentas_incobrables_extranjero_parte_relacionada +DEL account.group.template: l10n_mx.account_subgroup_estimación_de_cuentas_incobrables_nacional +DEL account.group.template: l10n_mx.account_subgroup_estimación_de_cuentas_incobrables_nacional_parte_relacionada +DEL account.group.template: l10n_mx.account_subgroup_estimación_de_inventarios_obsoletos_y_de_lento_movimiento +DEL account.group.template: l10n_mx.account_subgroup_estimación_de_inventarios_obsoletos_y_de_lento_movimiento_1 +DEL account.group.template: l10n_mx.account_subgroup_estimación_por_deterioro_de_inversiones_permanentes_en_acciones +DEL account.group.template: l10n_mx.account_subgroup_estimación_por_deterioro_de_inversiones_permanentes_en_acciones_1 +DEL account.group.template: l10n_mx.account_subgroup_estímulo_al_personal +DEL account.group.template: l10n_mx.account_subgroup_estímulo_al_personal_1 +DEL account.group.template: l10n_mx.account_subgroup_estímulo_al_personal_2 +DEL account.group.template: l10n_mx.account_subgroup_estímulo_al_personal_3 +DEL account.group.template: l10n_mx.account_subgroup_estímulo_al_personal_4 +DEL account.group.template: l10n_mx.account_subgroup_facilidades_administrativas_fiscales +DEL account.group.template: l10n_mx.account_subgroup_facilidades_administrativas_fiscales_1 +DEL account.group.template: l10n_mx.account_subgroup_factoraje_financiero_cobrados_por_anticipado_a_corto_plazo_extranjero +DEL account.group.template: l10n_mx.account_subgroup_factoraje_financiero_cobrados_por_anticipado_a_corto_plazo_extranjero_parte_relacionada +DEL account.group.template: l10n_mx.account_subgroup_factoraje_financiero_cobrados_por_anticipado_a_corto_plazo_nacional +DEL account.group.template: l10n_mx.account_subgroup_factoraje_financiero_cobrados_por_anticipado_a_corto_plazo_nacional_parte_relacionada +DEL account.group.template: l10n_mx.account_subgroup_factoraje_financiero_cobrados_por_anticipado_a_largo_plazo_extranjero +DEL account.group.template: l10n_mx.account_subgroup_factoraje_financiero_cobrados_por_anticipado_a_largo_plazo_extranjero_parte_relacionada +DEL account.group.template: l10n_mx.account_subgroup_factoraje_financiero_cobrados_por_anticipado_a_largo_plazo_nacional +DEL account.group.template: l10n_mx.account_subgroup_factoraje_financiero_cobrados_por_anticipado_a_largo_plazo_nacional_parte_relacionada +DEL account.group.template: l10n_mx.account_subgroup_factoraje_financiero_pagados_por_anticipado_extranjero +DEL account.group.template: l10n_mx.account_subgroup_factoraje_financiero_pagados_por_anticipado_extranjero_parte_relacionada +DEL account.group.template: l10n_mx.account_subgroup_factoraje_financiero_pagados_por_anticipado_nacional +DEL account.group.template: l10n_mx.account_subgroup_factoraje_financiero_pagados_por_anticipado_nacional_parte_relacionada +DEL account.group.template: l10n_mx.account_subgroup_ferrocarriles +DEL account.group.template: l10n_mx.account_subgroup_ferrocarriles_1 +DEL account.group.template: l10n_mx.account_subgroup_fletes_del_extranjero +DEL account.group.template: l10n_mx.account_subgroup_fletes_del_extranjero_1 +DEL account.group.template: l10n_mx.account_subgroup_fletes_del_extranjero_2 +DEL account.group.template: l10n_mx.account_subgroup_fletes_del_extranjero_3 +DEL account.group.template: l10n_mx.account_subgroup_fletes_y_acarreos +DEL account.group.template: l10n_mx.account_subgroup_fletes_y_acarreos_1 +DEL account.group.template: l10n_mx.account_subgroup_fletes_y_acarreos_2 +DEL account.group.template: l10n_mx.account_subgroup_fletes_y_acarreos_3 +DEL account.group.template: l10n_mx.account_subgroup_fondo_de_ahorro +DEL account.group.template: l10n_mx.account_subgroup_fondo_de_ahorro_1 +DEL account.group.template: l10n_mx.account_subgroup_fondo_de_ahorro_2 +DEL account.group.template: l10n_mx.account_subgroup_fondo_de_ahorro_3 +DEL account.group.template: l10n_mx.account_subgroup_fondo_de_ahorro_4 +DEL account.group.template: l10n_mx.account_subgroup_funcionarios_y_empleados +DEL account.group.template: l10n_mx.account_subgroup_ganancia_en_venta_de_maquinaria_y_equipo_de_generación_de_energía_de_fuentes_renovables_o_de_sistemas_de_cogeneración_de_electricidad_eficiente +DEL account.group.template: l10n_mx.account_subgroup_ganancia_en_venta_y/o_baja_de_activos_biológicos,_vegetales_y_semovientes +DEL account.group.template: l10n_mx.account_subgroup_ganancia_en_venta_y/o_baja_de_automóviles,_autobuses,_camiones_de_carga,_tractocamiones,_montacargas_y_remolques +DEL account.group.template: l10n_mx.account_subgroup_ganancia_en_venta_y/o_baja_de_aviones +DEL account.group.template: l10n_mx.account_subgroup_ganancia_en_venta_y/o_baja_de_edificios +DEL account.group.template: l10n_mx.account_subgroup_ganancia_en_venta_y/o_baja_de_embarcaciones +DEL account.group.template: l10n_mx.account_subgroup_ganancia_en_venta_y/o_baja_de_equipo_de_adaptaciones_para_personas_con_capacidades_diferentes +DEL account.group.template: l10n_mx.account_subgroup_ganancia_en_venta_y/o_baja_de_equipo_de_comunicaciones_telefónicas +DEL account.group.template: l10n_mx.account_subgroup_ganancia_en_venta_y/o_baja_de_equipo_de_comunicación +DEL account.group.template: l10n_mx.account_subgroup_ganancia_en_venta_y/o_baja_de_equipo_de_comunicación_satelital +DEL account.group.template: l10n_mx.account_subgroup_ganancia_en_venta_y/o_baja_de_equipo_de_cómputo +DEL account.group.template: l10n_mx.account_subgroup_ganancia_en_venta_y/o_baja_de_ferrocarriles +DEL account.group.template: l10n_mx.account_subgroup_ganancia_en_venta_y/o_baja_de_maquinaria_y_equipo +DEL account.group.template: l10n_mx.account_subgroup_ganancia_en_venta_y/o_baja_de_mobiliario_y_equipo_de_oficina +DEL account.group.template: l10n_mx.account_subgroup_ganancia_en_venta_y/o_baja_de_otra_maquinaria_y_equipo +DEL account.group.template: l10n_mx.account_subgroup_ganancia_en_venta_y/o_baja_de_otros_activos_fijos +DEL account.group.template: l10n_mx.account_subgroup_ganancia_en_venta_y/o_baja_de_terrenos +DEL account.group.template: l10n_mx.account_subgroup_ganancia_en_venta_y/o_baja_de_troqueles,_moldes,_matrices_y_herramental +DEL account.group.template: l10n_mx.account_subgroup_ganancia_por_enajenación_de_acciones +DEL account.group.template: l10n_mx.account_subgroup_ganancia_por_enajenación_de_partes_sociales +DEL account.group.template: l10n_mx.account_subgroup_gastos_de_administración +DEL account.group.template: l10n_mx.account_subgroup_gastos_de_administración_de_construcción +DEL account.group.template: l10n_mx.account_subgroup_gastos_de_administración_de_urbanización +DEL account.group.template: l10n_mx.account_subgroup_gastos_de_fabricación +DEL account.group.template: l10n_mx.account_subgroup_gastos_de_fabricación_de_construcción +DEL account.group.template: l10n_mx.account_subgroup_gastos_de_fabricación_de_urbanización +DEL account.group.template: l10n_mx.account_subgroup_gastos_de_importación +DEL account.group.template: l10n_mx.account_subgroup_gastos_de_importación_1 +DEL account.group.template: l10n_mx.account_subgroup_gastos_de_importación_2 +DEL account.group.template: l10n_mx.account_subgroup_gastos_de_importación_3 +DEL account.group.template: l10n_mx.account_subgroup_gastos_de_instalación +DEL account.group.template: l10n_mx.account_subgroup_gastos_de_instalación_1 +DEL account.group.template: l10n_mx.account_subgroup_gastos_de_organización +DEL account.group.template: l10n_mx.account_subgroup_gastos_de_organización_1 +DEL account.group.template: l10n_mx.account_subgroup_gastos_de_venta +DEL account.group.template: l10n_mx.account_subgroup_gastos_de_venta_de_construcción +DEL account.group.template: l10n_mx.account_subgroup_gastos_de_venta_de_urbanización +DEL account.group.template: l10n_mx.account_subgroup_gastos_diferidos +DEL account.group.template: l10n_mx.account_subgroup_gastos_diferidos_1 +DEL account.group.template: l10n_mx.account_subgroup_gastos_financieros +DEL account.group.template: l10n_mx.account_subgroup_gastos_generales +DEL account.group.template: l10n_mx.account_subgroup_gastos_generales_de_construcción +DEL account.group.template: l10n_mx.account_subgroup_gastos_generales_de_urbanización +DEL account.group.template: l10n_mx.account_subgroup_gastos_indirectos_de_fabricación +DEL account.group.template: l10n_mx.account_subgroup_gastos_indirectos_de_fabricación_de_partes_relacionadas_extranjeras +DEL account.group.template: l10n_mx.account_subgroup_gastos_indirectos_de_fabricación_de_partes_relacionadas_nacionales +DEL account.group.template: l10n_mx.account_subgroup_gastos_no_deducibles_(sin_requisitos_fiscales) +DEL account.group.template: l10n_mx.account_subgroup_gastos_no_deducibles_(sin_requisitos_fiscales)_1 +DEL account.group.template: l10n_mx.account_subgroup_gastos_no_deducibles_(sin_requisitos_fiscales)_2 +DEL account.group.template: l10n_mx.account_subgroup_gastos_no_deducibles_(sin_requisitos_fiscales)_3 +DEL account.group.template: l10n_mx.account_subgroup_gastos_no_deducibles_para_cufin +DEL account.group.template: l10n_mx.account_subgroup_gastos_no_deducibles_para_cufin_1 +DEL account.group.template: l10n_mx.account_subgroup_gastos_pre_operativos +DEL account.group.template: l10n_mx.account_subgroup_gastos_pre_operativos_1 +DEL account.group.template: l10n_mx.account_subgroup_gratificaciones +DEL account.group.template: l10n_mx.account_subgroup_gratificaciones_1 +DEL account.group.template: l10n_mx.account_subgroup_gratificaciones_2 +DEL account.group.template: l10n_mx.account_subgroup_gratificaciones_3 +DEL account.group.template: l10n_mx.account_subgroup_gratificaciones_4 +DEL account.group.template: l10n_mx.account_subgroup_hipotecas_por_pagar_a_largo_plazo_extranjero +DEL account.group.template: l10n_mx.account_subgroup_hipotecas_por_pagar_a_largo_plazo_extranjero_parte_relacionada +DEL account.group.template: l10n_mx.account_subgroup_hipotecas_por_pagar_a_largo_plazo_nacional +DEL account.group.template: l10n_mx.account_subgroup_hipotecas_por_pagar_a_largo_plazo_nacional_parte_relacionada +DEL account.group.template: l10n_mx.account_subgroup_honorarios_a_personas_físicas_residentes_del_extranjero +DEL account.group.template: l10n_mx.account_subgroup_honorarios_a_personas_físicas_residentes_del_extranjero_1 +DEL account.group.template: l10n_mx.account_subgroup_honorarios_a_personas_físicas_residentes_del_extranjero_2 +DEL account.group.template: l10n_mx.account_subgroup_honorarios_a_personas_físicas_residentes_del_extranjero_3 +DEL account.group.template: l10n_mx.account_subgroup_honorarios_a_personas_físicas_residentes_del_extranjero_partes_relacionadas +DEL account.group.template: l10n_mx.account_subgroup_honorarios_a_personas_físicas_residentes_del_extranjero_partes_relacionadas_1 +DEL account.group.template: l10n_mx.account_subgroup_honorarios_a_personas_físicas_residentes_del_extranjero_partes_relacionadas_2 +DEL account.group.template: l10n_mx.account_subgroup_honorarios_a_personas_físicas_residentes_del_extranjero_partes_relacionadas_3 +DEL account.group.template: l10n_mx.account_subgroup_honorarios_a_personas_físicas_residentes_nacionales +DEL account.group.template: l10n_mx.account_subgroup_honorarios_a_personas_físicas_residentes_nacionales_1 +DEL account.group.template: l10n_mx.account_subgroup_honorarios_a_personas_físicas_residentes_nacionales_2 +DEL account.group.template: l10n_mx.account_subgroup_honorarios_a_personas_físicas_residentes_nacionales_3 +DEL account.group.template: l10n_mx.account_subgroup_honorarios_a_personas_físicas_residentes_nacionales_partes_relacionadas +DEL account.group.template: l10n_mx.account_subgroup_honorarios_a_personas_físicas_residentes_nacionales_partes_relacionadas_1 +DEL account.group.template: l10n_mx.account_subgroup_honorarios_a_personas_físicas_residentes_nacionales_partes_relacionadas_2 +DEL account.group.template: l10n_mx.account_subgroup_honorarios_a_personas_físicas_residentes_nacionales_partes_relacionadas_3 +DEL account.group.template: l10n_mx.account_subgroup_honorarios_a_personas_morales_residentes_del_extranjero +DEL account.group.template: l10n_mx.account_subgroup_honorarios_a_personas_morales_residentes_del_extranjero_1 +DEL account.group.template: l10n_mx.account_subgroup_honorarios_a_personas_morales_residentes_del_extranjero_2 +DEL account.group.template: l10n_mx.account_subgroup_honorarios_a_personas_morales_residentes_del_extranjero_3 +DEL account.group.template: l10n_mx.account_subgroup_honorarios_a_personas_morales_residentes_del_extranjero_partes_relacionadas +DEL account.group.template: l10n_mx.account_subgroup_honorarios_a_personas_morales_residentes_del_extranjero_partes_relacionadas_1 +DEL account.group.template: l10n_mx.account_subgroup_honorarios_a_personas_morales_residentes_del_extranjero_partes_relacionadas_2 +DEL account.group.template: l10n_mx.account_subgroup_honorarios_a_personas_morales_residentes_del_extranjero_partes_relacionadas_3 +DEL account.group.template: l10n_mx.account_subgroup_honorarios_a_personas_morales_residentes_nacionales +DEL account.group.template: l10n_mx.account_subgroup_honorarios_a_personas_morales_residentes_nacionales_1 +DEL account.group.template: l10n_mx.account_subgroup_honorarios_a_personas_morales_residentes_nacionales_2 +DEL account.group.template: l10n_mx.account_subgroup_honorarios_a_personas_morales_residentes_nacionales_3 +DEL account.group.template: l10n_mx.account_subgroup_honorarios_a_personas_morales_residentes_nacionales_partes_relacionadas +DEL account.group.template: l10n_mx.account_subgroup_honorarios_a_personas_morales_residentes_nacionales_partes_relacionadas_1 +DEL account.group.template: l10n_mx.account_subgroup_honorarios_a_personas_morales_residentes_nacionales_partes_relacionadas_2 +DEL account.group.template: l10n_mx.account_subgroup_honorarios_a_personas_morales_residentes_nacionales_partes_relacionadas_3 +DEL account.group.template: l10n_mx.account_subgroup_honorarios_aduanales_personas_físicas +DEL account.group.template: l10n_mx.account_subgroup_honorarios_aduanales_personas_físicas_1 +DEL account.group.template: l10n_mx.account_subgroup_honorarios_aduanales_personas_físicas_2 +DEL account.group.template: l10n_mx.account_subgroup_honorarios_aduanales_personas_físicas_3 +DEL account.group.template: l10n_mx.account_subgroup_honorarios_aduanales_personas_morales +DEL account.group.template: l10n_mx.account_subgroup_honorarios_aduanales_personas_morales_1 +DEL account.group.template: l10n_mx.account_subgroup_honorarios_aduanales_personas_morales_2 +DEL account.group.template: l10n_mx.account_subgroup_honorarios_aduanales_personas_morales_3 +DEL account.group.template: l10n_mx.account_subgroup_honorarios_al_consejo_de_administración +DEL account.group.template: l10n_mx.account_subgroup_honorarios_al_consejo_de_administración_1 +DEL account.group.template: l10n_mx.account_subgroup_honorarios_al_consejo_de_administración_2 +DEL account.group.template: l10n_mx.account_subgroup_honorarios_al_consejo_de_administración_3 +DEL account.group.template: l10n_mx.account_subgroup_ia_a_favor +DEL account.group.template: l10n_mx.account_subgroup_ide_a_favor +DEL account.group.template: l10n_mx.account_subgroup_ieps_acreditable_pagado +DEL account.group.template: l10n_mx.account_subgroup_ieps_pagado_en_importación +DEL account.group.template: l10n_mx.account_subgroup_ieps_pendiente_de_pago +DEL account.group.template: l10n_mx.account_subgroup_ieps_pendiente_de_pago_en_importación +DEL account.group.template: l10n_mx.account_subgroup_ieps_por_pagar +DEL account.group.template: l10n_mx.account_subgroup_ieps_trasladado +DEL account.group.template: l10n_mx.account_subgroup_ieps_trasladado_cobrado +DEL account.group.template: l10n_mx.account_subgroup_ieps_trasladado_no_cobrado +DEL account.group.template: l10n_mx.account_subgroup_ietu_a_favor +DEL account.group.template: l10n_mx.account_subgroup_importación_de_activo_fijo_con_aplicación_de_crédito_fiscal_de_iva_e_ieps +DEL account.group.template: l10n_mx.account_subgroup_importación_de_mercancías_con_aplicación_de_crédito_fiscal_de_iva_e_ieps +DEL account.group.template: l10n_mx.account_subgroup_impuesto_estatal_sobre_nómina_por_pagar +DEL account.group.template: l10n_mx.account_subgroup_impuesto_estatal_sobre_nóminas +DEL account.group.template: l10n_mx.account_subgroup_impuesto_estatal_sobre_nóminas_1 +DEL account.group.template: l10n_mx.account_subgroup_impuesto_estatal_sobre_nóminas_2 +DEL account.group.template: l10n_mx.account_subgroup_impuesto_estatal_sobre_nóminas_3 +DEL account.group.template: l10n_mx.account_subgroup_impuesto_estatal_y_municipal_por_pagar +DEL account.group.template: l10n_mx.account_subgroup_impuesto_sobre_la_renta +DEL account.group.template: l10n_mx.account_subgroup_impuesto_sobre_la_renta_1 +DEL account.group.template: l10n_mx.account_subgroup_impuesto_sobre_la_renta_por_remanente_distribuible +DEL account.group.template: l10n_mx.account_subgroup_impuestos_a_favor +DEL account.group.template: l10n_mx.account_subgroup_impuestos_acreditables_pagados +DEL account.group.template: l10n_mx.account_subgroup_impuestos_acreditables_por_pagar +DEL account.group.template: l10n_mx.account_subgroup_impuestos_diferidos +DEL account.group.template: l10n_mx.account_subgroup_impuestos_diferidos_1 +DEL account.group.template: l10n_mx.account_subgroup_impuestos_diferidos_isr +DEL account.group.template: l10n_mx.account_subgroup_impuestos_retenidos +DEL account.group.template: l10n_mx.account_subgroup_impuestos_retenidos_de_isr_por_arrendamiento +DEL account.group.template: l10n_mx.account_subgroup_impuestos_retenidos_de_isr_por_asimilados_a_salarios +DEL account.group.template: l10n_mx.account_subgroup_impuestos_retenidos_de_isr_por_dividendos +DEL account.group.template: l10n_mx.account_subgroup_impuestos_retenidos_de_isr_por_intereses +DEL account.group.template: l10n_mx.account_subgroup_impuestos_retenidos_de_isr_por_pagos_al_extranjero +DEL account.group.template: l10n_mx.account_subgroup_impuestos_retenidos_de_isr_por_servicios_profesionales +DEL account.group.template: l10n_mx.account_subgroup_impuestos_retenidos_de_isr_por_sueldos_y_salarios +DEL account.group.template: l10n_mx.account_subgroup_impuestos_retenidos_de_isr_por_venta_de_acciones +DEL account.group.template: l10n_mx.account_subgroup_impuestos_retenidos_de_isr_por_venta_de_partes_sociales +DEL account.group.template: l10n_mx.account_subgroup_impuestos_retenidos_de_iva +DEL account.group.template: l10n_mx.account_subgroup_impuestos_trasladados +DEL account.group.template: l10n_mx.account_subgroup_impuestos_trasladados_cobrados +DEL account.group.template: l10n_mx.account_subgroup_impuestos_trasladados_no_cobrados +DEL account.group.template: l10n_mx.account_subgroup_impuestos_y_derechos_por_pagar +DEL account.group.template: l10n_mx.account_subgroup_indemnizaciones +DEL account.group.template: l10n_mx.account_subgroup_indemnizaciones_1 +DEL account.group.template: l10n_mx.account_subgroup_indemnizaciones_2 +DEL account.group.template: l10n_mx.account_subgroup_indemnizaciones_3 +DEL account.group.template: l10n_mx.account_subgroup_indemnizaciones_4 +DEL account.group.template: l10n_mx.account_subgroup_ingresos +DEL account.group.template: l10n_mx.account_subgroup_ingresos_de_copropiedad +DEL account.group.template: l10n_mx.account_subgroup_ingresos_de_extranjeros_con_establecimiento_en_el_país +DEL account.group.template: l10n_mx.account_subgroup_ingresos_por_arrendamiento +DEL account.group.template: l10n_mx.account_subgroup_ingresos_por_arrendamiento_extranjeros_partes_relacionadas +DEL account.group.template: l10n_mx.account_subgroup_ingresos_por_arrendamiento_financiero +DEL account.group.template: l10n_mx.account_subgroup_ingresos_por_arrendamiento_nacionales_partes_relacionadas +DEL account.group.template: l10n_mx.account_subgroup_ingresos_por_asistencia_técnica +DEL account.group.template: l10n_mx.account_subgroup_ingresos_por_comisiones +DEL account.group.template: l10n_mx.account_subgroup_ingresos_por_condonación_de_adeudo +DEL account.group.template: l10n_mx.account_subgroup_ingresos_por_condonación_de_adeudo_1 +DEL account.group.template: l10n_mx.account_subgroup_ingresos_por_coordinados +DEL account.group.template: l10n_mx.account_subgroup_ingresos_por_donativos +DEL account.group.template: l10n_mx.account_subgroup_ingresos_por_estímulos_fiscales +DEL account.group.template: l10n_mx.account_subgroup_ingresos_por_exportación +DEL account.group.template: l10n_mx.account_subgroup_ingresos_por_factoraje_financiero +DEL account.group.template: l10n_mx.account_subgroup_ingresos_por_fideicomisos +DEL account.group.template: l10n_mx.account_subgroup_ingresos_por_intereses_(actividad_propia) +DEL account.group.template: l10n_mx.account_subgroup_ingresos_por_maquila +DEL account.group.template: l10n_mx.account_subgroup_ingresos_por_operaciones_discontinuas +DEL account.group.template: l10n_mx.account_subgroup_ingresos_por_regalías +DEL account.group.template: l10n_mx.account_subgroup_ingresos_por_servicios_administrativos +DEL account.group.template: l10n_mx.account_subgroup_ingresos_por_servicios_administrativos_extranjeros_partes_relacionadas +DEL account.group.template: l10n_mx.account_subgroup_ingresos_por_servicios_administrativos_nacionales_partes_relacionadas +DEL account.group.template: l10n_mx.account_subgroup_ingresos_por_servicios_profesionales +DEL account.group.template: l10n_mx.account_subgroup_ingresos_por_servicios_profesionales_extranjeros_partes_relacionadas +DEL account.group.template: l10n_mx.account_subgroup_ingresos_por_servicios_profesionales_nacionales_partes_relacionadas +DEL account.group.template: l10n_mx.account_subgroup_instrumentos_financieros_a_corto_plazo +DEL account.group.template: l10n_mx.account_subgroup_instrumentos_financieros_a_corto_plazo_1 +DEL account.group.template: l10n_mx.account_subgroup_instrumentos_financieros_a_largo_plazo +DEL account.group.template: l10n_mx.account_subgroup_instrumentos_financieros_a_largo_plazo_1 +DEL account.group.template: l10n_mx.account_subgroup_intereses_a_cargo_bancario_extranjero +DEL account.group.template: l10n_mx.account_subgroup_intereses_a_cargo_bancario_nacional +DEL account.group.template: l10n_mx.account_subgroup_intereses_a_cargo_de_personas_físicas_extranjero +DEL account.group.template: l10n_mx.account_subgroup_intereses_a_cargo_de_personas_físicas_nacional +DEL account.group.template: l10n_mx.account_subgroup_intereses_a_cargo_de_personas_morales_extranjero +DEL account.group.template: l10n_mx.account_subgroup_intereses_a_cargo_de_personas_morales_nacional +DEL account.group.template: l10n_mx.account_subgroup_intereses_a_favor_bancarios_extranjero +DEL account.group.template: l10n_mx.account_subgroup_intereses_a_favor_bancarios_nacional +DEL account.group.template: l10n_mx.account_subgroup_intereses_a_favor_de_personas_físicas_extranjero +DEL account.group.template: l10n_mx.account_subgroup_intereses_a_favor_de_personas_físicas_nacional +DEL account.group.template: l10n_mx.account_subgroup_intereses_a_favor_de_personas_morales_extranjero +DEL account.group.template: l10n_mx.account_subgroup_intereses_a_favor_de_personas_morales_nacional +DEL account.group.template: l10n_mx.account_subgroup_intereses_cobrados_por_anticipado_a_corto_plazo_extranjero +DEL account.group.template: l10n_mx.account_subgroup_intereses_cobrados_por_anticipado_a_corto_plazo_extranjero_parte_relacionada +DEL account.group.template: l10n_mx.account_subgroup_intereses_cobrados_por_anticipado_a_corto_plazo_nacional +DEL account.group.template: l10n_mx.account_subgroup_intereses_cobrados_por_anticipado_a_corto_plazo_nacional_parte_relacionada +DEL account.group.template: l10n_mx.account_subgroup_intereses_cobrados_por_anticipado_a_largo_plazo_extranjero +DEL account.group.template: l10n_mx.account_subgroup_intereses_cobrados_por_anticipado_a_largo_plazo_extranjero_parte_relacionada +DEL account.group.template: l10n_mx.account_subgroup_intereses_cobrados_por_anticipado_a_largo_plazo_nacional +DEL account.group.template: l10n_mx.account_subgroup_intereses_cobrados_por_anticipado_a_largo_plazo_nacional_parte_relacionada +DEL account.group.template: l10n_mx.account_subgroup_intereses_pagados_por_anticipado_extranjero +DEL account.group.template: l10n_mx.account_subgroup_intereses_pagados_por_anticipado_extranjero_parte_relacionada +DEL account.group.template: l10n_mx.account_subgroup_intereses_pagados_por_anticipado_nacional +DEL account.group.template: l10n_mx.account_subgroup_intereses_pagados_por_anticipado_nacional_parte_relacionada +DEL account.group.template: l10n_mx.account_subgroup_intereses_por_cobrar_a_corto_plazo_extranjero +DEL account.group.template: l10n_mx.account_subgroup_intereses_por_cobrar_a_corto_plazo_extranjero_parte_relacionada +DEL account.group.template: l10n_mx.account_subgroup_intereses_por_cobrar_a_corto_plazo_nacional +DEL account.group.template: l10n_mx.account_subgroup_intereses_por_cobrar_a_corto_plazo_nacional_parte_relacionada +DEL account.group.template: l10n_mx.account_subgroup_intereses_por_cobrar_a_largo_plazo_extranjero +DEL account.group.template: l10n_mx.account_subgroup_intereses_por_cobrar_a_largo_plazo_extranjero_parte_relacionada +DEL account.group.template: l10n_mx.account_subgroup_intereses_por_cobrar_a_largo_plazo_nacional +DEL account.group.template: l10n_mx.account_subgroup_intereses_por_cobrar_a_largo_plazo_nacional_parte_relacionada +DEL account.group.template: l10n_mx.account_subgroup_intereses_por_pagar_a_corto_plazo_extranjero +DEL account.group.template: l10n_mx.account_subgroup_intereses_por_pagar_a_corto_plazo_extranjero_parte_relacionada +DEL account.group.template: l10n_mx.account_subgroup_intereses_por_pagar_a_corto_plazo_nacional +DEL account.group.template: l10n_mx.account_subgroup_intereses_por_pagar_a_corto_plazo_nacional_parte_relacionada +DEL account.group.template: l10n_mx.account_subgroup_intereses_por_pagar_a_largo_plazo_extranjero +DEL account.group.template: l10n_mx.account_subgroup_intereses_por_pagar_a_largo_plazo_extranjero_parte_relacionada +DEL account.group.template: l10n_mx.account_subgroup_intereses_por_pagar_a_largo_plazo_nacional +DEL account.group.template: l10n_mx.account_subgroup_intereses_por_pagar_a_largo_plazo_nacional_parte_relacionada +DEL account.group.template: l10n_mx.account_subgroup_inventario +DEL account.group.template: l10n_mx.account_subgroup_inventario_1 +DEL account.group.template: l10n_mx.account_subgroup_inversiones +DEL account.group.template: l10n_mx.account_subgroup_inversiones_a_largo_plazo_en_asociadas +DEL account.group.template: l10n_mx.account_subgroup_inversiones_a_largo_plazo_en_subsidiarias +DEL account.group.template: l10n_mx.account_subgroup_inversiones_en_fideicomisos +DEL account.group.template: l10n_mx.account_subgroup_inversiones_permanentes_en_acciones +DEL account.group.template: l10n_mx.account_subgroup_inversiones_temporales +DEL account.group.template: l10n_mx.account_subgroup_investigación_y_desarrollo_de_mercado +DEL account.group.template: l10n_mx.account_subgroup_investigación_y_desarrollo_de_mercado_1 +DEL account.group.template: l10n_mx.account_subgroup_isr_a_favor +DEL account.group.template: l10n_mx.account_subgroup_isr_diferido +DEL account.group.template: l10n_mx.account_subgroup_isr_por_dividendo_diferido +DEL account.group.template: l10n_mx.account_subgroup_isr_por_pagar +DEL account.group.template: l10n_mx.account_subgroup_iva_a_favor +DEL account.group.template: l10n_mx.account_subgroup_iva_acreditable_de_importación_pagado +DEL account.group.template: l10n_mx.account_subgroup_iva_acreditable_pagado +DEL account.group.template: l10n_mx.account_subgroup_iva_de_importación_pendiente_de_pago +DEL account.group.template: l10n_mx.account_subgroup_iva_pendiente_de_pago +DEL account.group.template: l10n_mx.account_subgroup_iva_por_pagar +DEL account.group.template: l10n_mx.account_subgroup_iva_trasladado +DEL account.group.template: l10n_mx.account_subgroup_iva_trasladado_cobrado +DEL account.group.template: l10n_mx.account_subgroup_iva_trasladado_no_cobrado +DEL account.group.template: l10n_mx.account_subgroup_limpieza +DEL account.group.template: l10n_mx.account_subgroup_limpieza_1 +DEL account.group.template: l10n_mx.account_subgroup_limpieza_2 +DEL account.group.template: l10n_mx.account_subgroup_limpieza_3 +DEL account.group.template: l10n_mx.account_subgroup_mano_de_obra +DEL account.group.template: l10n_mx.account_subgroup_mano_de_obra_directa +DEL account.group.template: l10n_mx.account_subgroup_mano_de_obra_directa_1 +DEL account.group.template: l10n_mx.account_subgroup_mano_de_obra_directa_consumida +DEL account.group.template: l10n_mx.account_subgroup_mantenimiento_y_conservación +DEL account.group.template: l10n_mx.account_subgroup_mantenimiento_y_conservación_1 +DEL account.group.template: l10n_mx.account_subgroup_mantenimiento_y_conservación_2 +DEL account.group.template: l10n_mx.account_subgroup_mantenimiento_y_conservación_3 +DEL account.group.template: l10n_mx.account_subgroup_maquinaria_y_equipo +DEL account.group.template: l10n_mx.account_subgroup_maquinaria_y_equipo_1 +DEL account.group.template: l10n_mx.account_subgroup_maquinaria_y_equipo_de_generación_de_energía_de_fuentes_renovables_o_de_sistemas_de_cogeneración_de_electricidad_eficiente +DEL account.group.template: l10n_mx.account_subgroup_maquinaria_y_equipo_de_generación_de_energía_de_fuentes_renovables_o_de_sistemas_de_cogeneración_de_electricidad_eficiente_1 +DEL account.group.template: l10n_mx.account_subgroup_marcas_y_patentes +DEL account.group.template: l10n_mx.account_subgroup_marcas_y_patentes_1 +DEL account.group.template: l10n_mx.account_subgroup_materia_prima_consumida_en_el_proceso_productivo +DEL account.group.template: l10n_mx.account_subgroup_materia_prima_directa_utilizada_para_la_producción +DEL account.group.template: l10n_mx.account_subgroup_materia_prima_y_materiales +DEL account.group.template: l10n_mx.account_subgroup_mercancías_en_poder_de_terceros +DEL account.group.template: l10n_mx.account_subgroup_mercancías_en_tránsito +DEL account.group.template: l10n_mx.account_subgroup_mercancías_recibidas_en_consignación +DEL account.group.template: l10n_mx.account_subgroup_mercancías_recibidas_en_consignación_1 +DEL account.group.template: l10n_mx.account_subgroup_mobiliario_y_equipo_de_oficina +DEL account.group.template: l10n_mx.account_subgroup_mobiliario_y_equipo_de_oficina_1 +DEL account.group.template: l10n_mx.account_subgroup_obligaciones_contraídas_de_fideicomisos +DEL account.group.template: l10n_mx.account_subgroup_obligaciones_contraídas_de_fideicomisos_1 +DEL account.group.template: l10n_mx.account_subgroup_obras_en_proceso_de_activos_fijos +DEL account.group.template: l10n_mx.account_subgroup_obras_en_proceso_de_activos_fijos_1 +DEL account.group.template: l10n_mx.account_subgroup_obras_en_proceso_de_inmuebles +DEL account.group.template: l10n_mx.account_subgroup_obras_en_proceso_de_inmuebles_1 +DEL account.group.template: l10n_mx.account_subgroup_otra_maquinaria_y_equipo +DEL account.group.template: l10n_mx.account_subgroup_otra_maquinaria_y_equipo_1 +DEL account.group.template: l10n_mx.account_subgroup_otras_aportaciones +DEL account.group.template: l10n_mx.account_subgroup_otras_aportaciones_1 +DEL account.group.template: l10n_mx.account_subgroup_otras_aportaciones_2 +DEL account.group.template: l10n_mx.account_subgroup_otras_aportaciones_3 +DEL account.group.template: l10n_mx.account_subgroup_otras_cuentas_de_capital +DEL account.group.template: l10n_mx.account_subgroup_otras_cuentas_de_capital_1 +DEL account.group.template: l10n_mx.account_subgroup_otras_cuentas_de_costos +DEL account.group.template: l10n_mx.account_subgroup_otras_cuentas_de_costos_1 +DEL account.group.template: l10n_mx.account_subgroup_otras_cuentas_de_costos_incurridos +DEL account.group.template: l10n_mx.account_subgroup_otras_cuentas_de_costos_incurridos_con_partes_relacionadas_extranjeras +DEL account.group.template: l10n_mx.account_subgroup_otras_cuentas_de_costos_incurridos_con_partes_relacionadas_nacionales +DEL account.group.template: l10n_mx.account_subgroup_otras_cuentas_de_orden +DEL account.group.template: l10n_mx.account_subgroup_otras_cuentas_de_orden_1 +DEL account.group.template: l10n_mx.account_subgroup_otras_cuentas_y_documentos_por_cobrar_a_corto_plazo +DEL account.group.template: l10n_mx.account_subgroup_otras_cuentas_y_documentos_por_cobrar_a_corto_plazo_parte_relacionada +DEL account.group.template: l10n_mx.account_subgroup_otras_cuentas_y_documentos_por_cobrar_a_largo_plazo +DEL account.group.template: l10n_mx.account_subgroup_otras_cuentas_y_documentos_por_cobrar_a_largo_plazo_parte_relacionada +DEL account.group.template: l10n_mx.account_subgroup_otras_cuentas_y_documentos_por_pagar_a_largo_plazo +DEL account.group.template: l10n_mx.account_subgroup_otras_impuestos_retenidos +DEL account.group.template: l10n_mx.account_subgroup_otras_inversiones +DEL account.group.template: l10n_mx.account_subgroup_otras_inversiones_permanentes_en_acciones +DEL account.group.template: l10n_mx.account_subgroup_otras_prestaciones_al_personal +DEL account.group.template: l10n_mx.account_subgroup_otras_prestaciones_al_personal_1 +DEL account.group.template: l10n_mx.account_subgroup_otras_prestaciones_al_personal_2 +DEL account.group.template: l10n_mx.account_subgroup_otras_prestaciones_al_personal_3 +DEL account.group.template: l10n_mx.account_subgroup_otras_prestaciones_al_personal_4 +DEL account.group.template: l10n_mx.account_subgroup_otros +DEL account.group.template: l10n_mx.account_subgroup_otros_acreedores_diversos_a_corto_plazo +DEL account.group.template: l10n_mx.account_subgroup_otros_acreedores_diversos_a_largo_plazo +DEL account.group.template: l10n_mx.account_subgroup_otros_activos_a_corto_plazo +DEL account.group.template: l10n_mx.account_subgroup_otros_activos_a_corto_plazo_1 +DEL account.group.template: l10n_mx.account_subgroup_otros_activos_a_largo_plazo +DEL account.group.template: l10n_mx.account_subgroup_otros_activos_a_largo_plazo_1 +DEL account.group.template: l10n_mx.account_subgroup_otros_activos_diferidos +DEL account.group.template: l10n_mx.account_subgroup_otros_activos_diferidos_1 +DEL account.group.template: l10n_mx.account_subgroup_otros_activos_fijos +DEL account.group.template: l10n_mx.account_subgroup_otros_activos_fijos_1 +DEL account.group.template: l10n_mx.account_subgroup_otros_anticipos_de_clientes +DEL account.group.template: l10n_mx.account_subgroup_otros_cobros_anticipados +DEL account.group.template: l10n_mx.account_subgroup_otros_cobros_anticipados_1 +DEL account.group.template: l10n_mx.account_subgroup_otros_conceptos_de_costo +DEL account.group.template: l10n_mx.account_subgroup_otros_costos_de_mano_de_obra_directa +DEL account.group.template: l10n_mx.account_subgroup_otros_depósitos_en_garantía +DEL account.group.template: l10n_mx.account_subgroup_otros_deudores_diversos +DEL account.group.template: l10n_mx.account_subgroup_otros_estímulos +DEL account.group.template: l10n_mx.account_subgroup_otros_estímulos_1 +DEL account.group.template: l10n_mx.account_subgroup_otros_gastos +DEL account.group.template: l10n_mx.account_subgroup_otros_gastos_1 +DEL account.group.template: l10n_mx.account_subgroup_otros_gastos_de_administración +DEL account.group.template: l10n_mx.account_subgroup_otros_gastos_de_fabricación +DEL account.group.template: l10n_mx.account_subgroup_otros_gastos_de_venta +DEL account.group.template: l10n_mx.account_subgroup_otros_gastos_financieros +DEL account.group.template: l10n_mx.account_subgroup_otros_gastos_generales +DEL account.group.template: l10n_mx.account_subgroup_otros_impuestos_a_favor +DEL account.group.template: l10n_mx.account_subgroup_otros_impuestos_diferidos +DEL account.group.template: l10n_mx.account_subgroup_otros_impuestos_por_pagar +DEL account.group.template: l10n_mx.account_subgroup_otros_impuestos_y_derechos +DEL account.group.template: l10n_mx.account_subgroup_otros_impuestos_y_derechos_1 +DEL account.group.template: l10n_mx.account_subgroup_otros_impuestos_y_derechos_2 +DEL account.group.template: l10n_mx.account_subgroup_otros_impuestos_y_derechos_3 +DEL account.group.template: l10n_mx.account_subgroup_otros_ingresos +DEL account.group.template: l10n_mx.account_subgroup_otros_ingresos_1 +DEL account.group.template: l10n_mx.account_subgroup_otros_ingresos_extranjeros_parte_relacionada +DEL account.group.template: l10n_mx.account_subgroup_otros_ingresos_nacionales_parte_relacionada +DEL account.group.template: l10n_mx.account_subgroup_otros_ingresos_propios +DEL account.group.template: l10n_mx.account_subgroup_otros_instrumentos_financieros +DEL account.group.template: l10n_mx.account_subgroup_otros_instrumentos_financieros_1 +DEL account.group.template: l10n_mx.account_subgroup_otros_instrumentos_financieros_2 +DEL account.group.template: l10n_mx.account_subgroup_otros_instrumentos_financieros_3 +DEL account.group.template: l10n_mx.account_subgroup_otros_pagos_anticipados +DEL account.group.template: l10n_mx.account_subgroup_otros_pasivos_a_corto_plazo +DEL account.group.template: l10n_mx.account_subgroup_otros_pasivos_a_corto_plazo_1 +DEL account.group.template: l10n_mx.account_subgroup_otros_pasivos_a_largo_plazo +DEL account.group.template: l10n_mx.account_subgroup_otros_pasivos_a_largo_plazo_1 +DEL account.group.template: l10n_mx.account_subgroup_otros_productos +DEL account.group.template: l10n_mx.account_subgroup_otros_productos_1 +DEL account.group.template: l10n_mx.account_subgroup_otros_productos_financieros +DEL account.group.template: l10n_mx.account_subgroup_pago_de_lo_indebido +DEL account.group.template: l10n_mx.account_subgroup_pagos_anticipados +DEL account.group.template: l10n_mx.account_subgroup_pagos_provisionales +DEL account.group.template: l10n_mx.account_subgroup_pagos_provisionales_de_isr +DEL account.group.template: l10n_mx.account_subgroup_pagos_realizados_por_cuenta_de_terceros +DEL account.group.template: l10n_mx.account_subgroup_pagos_realizados_por_cuenta_de_terceros_1 +DEL account.group.template: l10n_mx.account_subgroup_papelería_y_artículos_de_oficina +DEL account.group.template: l10n_mx.account_subgroup_papelería_y_artículos_de_oficina_1 +DEL account.group.template: l10n_mx.account_subgroup_papelería_y_artículos_de_oficina_2 +DEL account.group.template: l10n_mx.account_subgroup_papelería_y_artículos_de_oficina_3 +DEL account.group.template: l10n_mx.account_subgroup_partes_relacionadas_extranjeros +DEL account.group.template: l10n_mx.account_subgroup_partes_relacionadas_nacionales +DEL account.group.template: l10n_mx.account_subgroup_participación_de_los_trabajadores_en_las_utilidades +DEL account.group.template: l10n_mx.account_subgroup_participación_de_los_trabajadores_en_las_utilidades_1 +DEL account.group.template: l10n_mx.account_subgroup_participación_de_los_trabajadores_en_las_utilidades_diferida +DEL account.group.template: l10n_mx.account_subgroup_participación_de_los_trabajadores_en_las_utilidades_diferida_1 +DEL account.group.template: l10n_mx.account_subgroup_participación_de_los_trabajadores_en_las_utilidades_diferida_2 +DEL account.group.template: l10n_mx.account_subgroup_participación_de_los_trabajadores_en_las_utilidades_diferida_3 +DEL account.group.template: l10n_mx.account_subgroup_participación_de_los_trabajadores_en_las_utilidades_diferidas +DEL account.group.template: l10n_mx.account_subgroup_participación_de_los_trabajadores_en_las_utilidades_diferidas_1 +DEL account.group.template: l10n_mx.account_subgroup_participación_en_resultados_de_asociadas +DEL account.group.template: l10n_mx.account_subgroup_participación_en_resultados_de_asociadas_1 +DEL account.group.template: l10n_mx.account_subgroup_participación_en_resultados_de_subsidiarias +DEL account.group.template: l10n_mx.account_subgroup_participación_en_resultados_de_subsidiarias_1 +DEL account.group.template: l10n_mx.account_subgroup_pasivo_a_corto_plazo +DEL account.group.template: l10n_mx.account_subgroup_pasivo_a_largo_plazo +DEL account.group.template: l10n_mx.account_subgroup_pasivos_diferidos +DEL account.group.template: l10n_mx.account_subgroup_pasivos_diferidos_1 +DEL account.group.template: l10n_mx.account_subgroup_pasivos_por_beneficios_a_los_empleados_a_largo_plazo +DEL account.group.template: l10n_mx.account_subgroup_pasivos_por_beneficios_a_los_empleados_a_largo_plazo_1 +DEL account.group.template: l10n_mx.account_subgroup_patentes_y_marcas +DEL account.group.template: l10n_mx.account_subgroup_patentes_y_marcas_1 +DEL account.group.template: l10n_mx.account_subgroup_patentes_y_marcas_2 +DEL account.group.template: l10n_mx.account_subgroup_patentes_y_marcas_3 +DEL account.group.template: l10n_mx.account_subgroup_patrimonio +DEL account.group.template: l10n_mx.account_subgroup_patrimonio_1 +DEL account.group.template: l10n_mx.account_subgroup_prediales +DEL account.group.template: l10n_mx.account_subgroup_prediales_1 +DEL account.group.template: l10n_mx.account_subgroup_prediales_2 +DEL account.group.template: l10n_mx.account_subgroup_prediales_3 +DEL account.group.template: l10n_mx.account_subgroup_premios_de_asistencia +DEL account.group.template: l10n_mx.account_subgroup_premios_de_asistencia_1 +DEL account.group.template: l10n_mx.account_subgroup_premios_de_asistencia_2 +DEL account.group.template: l10n_mx.account_subgroup_premios_de_asistencia_3 +DEL account.group.template: l10n_mx.account_subgroup_premios_de_asistencia_4 +DEL account.group.template: l10n_mx.account_subgroup_premios_de_puntualidad +DEL account.group.template: l10n_mx.account_subgroup_premios_de_puntualidad_1 +DEL account.group.template: l10n_mx.account_subgroup_premios_de_puntualidad_2 +DEL account.group.template: l10n_mx.account_subgroup_premios_de_puntualidad_3 +DEL account.group.template: l10n_mx.account_subgroup_premios_de_puntualidad_4 +DEL account.group.template: l10n_mx.account_subgroup_previsión_social +DEL account.group.template: l10n_mx.account_subgroup_previsión_social_1 +DEL account.group.template: l10n_mx.account_subgroup_previsión_social_2 +DEL account.group.template: l10n_mx.account_subgroup_previsión_social_3 +DEL account.group.template: l10n_mx.account_subgroup_previsión_social_4 +DEL account.group.template: l10n_mx.account_subgroup_prima_dominical +DEL account.group.template: l10n_mx.account_subgroup_prima_dominical_1 +DEL account.group.template: l10n_mx.account_subgroup_prima_dominical_2 +DEL account.group.template: l10n_mx.account_subgroup_prima_dominical_3 +DEL account.group.template: l10n_mx.account_subgroup_prima_dominical_4 +DEL account.group.template: l10n_mx.account_subgroup_prima_en_suscripción_de_acciones +DEL account.group.template: l10n_mx.account_subgroup_prima_en_suscripción_de_partes_sociales +DEL account.group.template: l10n_mx.account_subgroup_prima_vacacional +DEL account.group.template: l10n_mx.account_subgroup_prima_vacacional_1 +DEL account.group.template: l10n_mx.account_subgroup_prima_vacacional_2 +DEL account.group.template: l10n_mx.account_subgroup_prima_vacacional_3 +DEL account.group.template: l10n_mx.account_subgroup_prima_vacacional_4 +DEL account.group.template: l10n_mx.account_subgroup_primas_de_antigüedad +DEL account.group.template: l10n_mx.account_subgroup_primas_de_antigüedad_1 +DEL account.group.template: l10n_mx.account_subgroup_primas_de_antigüedad_2 +DEL account.group.template: l10n_mx.account_subgroup_primas_de_antigüedad_3 +DEL account.group.template: l10n_mx.account_subgroup_primas_de_antigüedad_4 +DEL account.group.template: l10n_mx.account_subgroup_producción_en_proceso +DEL account.group.template: l10n_mx.account_subgroup_productos_financieros +DEL account.group.template: l10n_mx.account_subgroup_productos_terminados +DEL account.group.template: l10n_mx.account_subgroup_propaganda_y_publicidad +DEL account.group.template: l10n_mx.account_subgroup_propaganda_y_publicidad_1 +DEL account.group.template: l10n_mx.account_subgroup_propaganda_y_publicidad_2 +DEL account.group.template: l10n_mx.account_subgroup_propaganda_y_publicidad_3 +DEL account.group.template: l10n_mx.account_subgroup_proveedores +DEL account.group.template: l10n_mx.account_subgroup_proveedores_extranjeros +DEL account.group.template: l10n_mx.account_subgroup_proveedores_extranjeros_parte_relacionada +DEL account.group.template: l10n_mx.account_subgroup_proveedores_nacionales +DEL account.group.template: l10n_mx.account_subgroup_proveedores_nacionales_parte_relacionada +DEL account.group.template: l10n_mx.account_subgroup_provisión_de_aguinaldo_por_pagar +DEL account.group.template: l10n_mx.account_subgroup_provisión_de_anticipos_o_remanentes_por_distribuir +DEL account.group.template: l10n_mx.account_subgroup_provisión_de_asimilados_a_salarios_por_pagar +DEL account.group.template: l10n_mx.account_subgroup_provisión_de_contribuciones_de_seguridad_social_por_pagar +DEL account.group.template: l10n_mx.account_subgroup_provisión_de_fondo_de_ahorro_por_pagar +DEL account.group.template: l10n_mx.account_subgroup_provisión_de_impuesto_estatal_sobre_nómina_por_pagar +DEL account.group.template: l10n_mx.account_subgroup_provisión_de_impuesto_estatal_sobre_nómina_por_pagar_1 +DEL account.group.template: l10n_mx.account_subgroup_provisión_de_imss_patronal_por_pagar +DEL account.group.template: l10n_mx.account_subgroup_provisión_de_infonavit_por_pagar +DEL account.group.template: l10n_mx.account_subgroup_provisión_de_otros_sueldos_y_salarios_por_pagar +DEL account.group.template: l10n_mx.account_subgroup_provisión_de_ptu_por_pagar +DEL account.group.template: l10n_mx.account_subgroup_provisión_de_sar_por_pagar +DEL account.group.template: l10n_mx.account_subgroup_provisión_de_sueldos_y_salarios_por_pagar +DEL account.group.template: l10n_mx.account_subgroup_provisión_de_sueldos_y_salarios_por_pagar_1 +DEL account.group.template: l10n_mx.account_subgroup_provisión_de_vacaciones_por_pagar +DEL account.group.template: l10n_mx.account_subgroup_ptu +DEL account.group.template: l10n_mx.account_subgroup_ptu_1 +DEL account.group.template: l10n_mx.account_subgroup_ptu_2 +DEL account.group.template: l10n_mx.account_subgroup_ptu_3 +DEL account.group.template: l10n_mx.account_subgroup_ptu_4 +DEL account.group.template: l10n_mx.account_subgroup_ptu_por_pagar +DEL account.group.template: l10n_mx.account_subgroup_ptu_por_pagar_1 +DEL account.group.template: l10n_mx.account_subgroup_ptu_por_pagar_de_ejercicios_anteriores +DEL account.group.template: l10n_mx.account_subgroup_pérdida_cambiaria +DEL account.group.template: l10n_mx.account_subgroup_pérdida_cambiaria_extranjero_parte_relacionada +DEL account.group.template: l10n_mx.account_subgroup_pérdida_cambiaria_nacional_parte_relacionada +DEL account.group.template: l10n_mx.account_subgroup_pérdida_de_ejercicios_anteriores +DEL account.group.template: l10n_mx.account_subgroup_pérdida_del_ejercicio +DEL account.group.template: l10n_mx.account_subgroup_pérdida_en_venta_y/o_baja_de_activos_biológicos,_vegetales_y_semovientes +DEL account.group.template: l10n_mx.account_subgroup_pérdida_en_venta_y/o_baja_de_automóviles,_autobuses,_camiones_de_carga,_tractocamiones,_montacargas_y_remolques +DEL account.group.template: l10n_mx.account_subgroup_pérdida_en_venta_y/o_baja_de_aviones +DEL account.group.template: l10n_mx.account_subgroup_pérdida_en_venta_y/o_baja_de_edificios +DEL account.group.template: l10n_mx.account_subgroup_pérdida_en_venta_y/o_baja_de_embarcaciones +DEL account.group.template: l10n_mx.account_subgroup_pérdida_en_venta_y/o_baja_de_equipo_de_adaptaciones_para_personas_con_capacidades_diferentes +DEL account.group.template: l10n_mx.account_subgroup_pérdida_en_venta_y/o_baja_de_equipo_de_comunicaciones_telefónicas +DEL account.group.template: l10n_mx.account_subgroup_pérdida_en_venta_y/o_baja_de_equipo_de_comunicación +DEL account.group.template: l10n_mx.account_subgroup_pérdida_en_venta_y/o_baja_de_equipo_de_cómputo +DEL account.group.template: l10n_mx.account_subgroup_pérdida_en_venta_y/o_baja_de_ferrocarriles +DEL account.group.template: l10n_mx.account_subgroup_pérdida_en_venta_y/o_baja_de_maquinaria_y_equipo +DEL account.group.template: l10n_mx.account_subgroup_pérdida_en_venta_y/o_baja_de_maquinaria_y_equipo_de_generación_de_energía_de_fuentes_renovables_o_de_sistemas_de_cogeneración_de_electricidad_eficiente +DEL account.group.template: l10n_mx.account_subgroup_pérdida_en_venta_y/o_baja_de_mobiliario_y_equipo_de_oficina +DEL account.group.template: l10n_mx.account_subgroup_pérdida_en_venta_y/o_baja_de_otra_maquinaria_y_equipo +DEL account.group.template: l10n_mx.account_subgroup_pérdida_en_venta_y/o_baja_de_otros_activos_fijos +DEL account.group.template: l10n_mx.account_subgroup_pérdida_en_venta_y/o_baja_de_terrenos +DEL account.group.template: l10n_mx.account_subgroup_pérdida_en_venta_y/o_baja_de_troqueles,_moldes,_matrices_y_herramental +DEL account.group.template: l10n_mx.account_subgroup_pérdida_por_deterioro_acumulado_de_activos_biológicos,_vegetales_y_semovientes +DEL account.group.template: l10n_mx.account_subgroup_pérdida_por_deterioro_acumulado_de_activos_fijos +DEL account.group.template: l10n_mx.account_subgroup_pérdida_por_deterioro_acumulado_de_adaptaciones_y_mejoras +DEL account.group.template: l10n_mx.account_subgroup_pérdida_por_deterioro_acumulado_de_automóviles,_autobuses,_camiones_de_carga,_tractocamiones,_montacargas_y_remolques +DEL account.group.template: l10n_mx.account_subgroup_pérdida_por_deterioro_acumulado_de_aviones +DEL account.group.template: l10n_mx.account_subgroup_pérdida_por_deterioro_acumulado_de_edificios +DEL account.group.template: l10n_mx.account_subgroup_pérdida_por_deterioro_acumulado_de_embarcaciones +DEL account.group.template: l10n_mx.account_subgroup_pérdida_por_deterioro_acumulado_de_equipo_de_adaptaciones_para_personas_con_capacidades_diferentes +DEL account.group.template: l10n_mx.account_subgroup_pérdida_por_deterioro_acumulado_de_equipo_de_comunicaciones_telefónicas +DEL account.group.template: l10n_mx.account_subgroup_pérdida_por_deterioro_acumulado_de_equipo_de_comunicación +DEL account.group.template: l10n_mx.account_subgroup_pérdida_por_deterioro_acumulado_de_equipo_de_comunicación_satelital +DEL account.group.template: l10n_mx.account_subgroup_pérdida_por_deterioro_acumulado_de_equipo_de_cómputo +DEL account.group.template: l10n_mx.account_subgroup_pérdida_por_deterioro_acumulado_de_ferrocarriles +DEL account.group.template: l10n_mx.account_subgroup_pérdida_por_deterioro_acumulado_de_maquinaria_y_equipo +DEL account.group.template: l10n_mx.account_subgroup_pérdida_por_deterioro_acumulado_de_maquinaria_y_equipo_de_generación_de_energía_de_fuentes_renovables_o_de_sistemas_de_cogeneración_de_electricidad_eficiente +DEL account.group.template: l10n_mx.account_subgroup_pérdida_por_deterioro_acumulado_de_mobiliario_y_equipo_de_oficina +DEL account.group.template: l10n_mx.account_subgroup_pérdida_por_deterioro_acumulado_de_otra_maquinaria_y_equipo +DEL account.group.template: l10n_mx.account_subgroup_pérdida_por_deterioro_acumulado_de_otros_activos_fijos +DEL account.group.template: l10n_mx.account_subgroup_pérdida_por_deterioro_acumulado_de_troqueles,_moldes,_matrices_y_herramental +DEL account.group.template: l10n_mx.account_subgroup_pérdida_por_deterioro_de_pagos_anticipados +DEL account.group.template: l10n_mx.account_subgroup_pérdida_por_enajenación_de_acciones +DEL account.group.template: l10n_mx.account_subgroup_pérdida_por_enajenación_de_partes_sociales +DEL account.group.template: l10n_mx.account_subgroup_pérdidas_fiscales_pendientes_de_amortizar_actualizadas_de_ejercicios_anteriores +DEL account.group.template: l10n_mx.account_subgroup_pérdidas_fiscales_pendientes_de_amortizar_actualizadas_de_ejercicios_anteriores_1 +DEL account.group.template: l10n_mx.account_subgroup_recargos_fiscales +DEL account.group.template: l10n_mx.account_subgroup_recargos_fiscales_1 +DEL account.group.template: l10n_mx.account_subgroup_recargos_fiscales_2 +DEL account.group.template: l10n_mx.account_subgroup_recargos_fiscales_3 +DEL account.group.template: l10n_mx.account_subgroup_recolección_de_bienes_del_sector_agropecuario_y/o_ganadero +DEL account.group.template: l10n_mx.account_subgroup_recolección_de_bienes_del_sector_agropecuario_y/o_ganadero_1 +DEL account.group.template: l10n_mx.account_subgroup_recolección_de_bienes_del_sector_agropecuario_y/o_ganadero_2 +DEL account.group.template: l10n_mx.account_subgroup_recolección_de_bienes_del_sector_agropecuario_y/o_ganadero_3 +DEL account.group.template: l10n_mx.account_subgroup_regalías,_asistencia_técnica_y_otros_gastos_diferidos +DEL account.group.template: l10n_mx.account_subgroup_regalías,_asistencia_técnica_y_otros_gastos_diferidos_1 +DEL account.group.template: l10n_mx.account_subgroup_regalías_sin_retención +DEL account.group.template: l10n_mx.account_subgroup_regalías_sin_retención_1 +DEL account.group.template: l10n_mx.account_subgroup_regalías_sin_retención_2 +DEL account.group.template: l10n_mx.account_subgroup_regalías_sin_retención_3 +DEL account.group.template: l10n_mx.account_subgroup_regalías_sujetas_a_otros_porcentajes +DEL account.group.template: l10n_mx.account_subgroup_regalías_sujetas_a_otros_porcentajes_1 +DEL account.group.template: l10n_mx.account_subgroup_regalías_sujetas_a_otros_porcentajes_2 +DEL account.group.template: l10n_mx.account_subgroup_regalías_sujetas_a_otros_porcentajes_3 +DEL account.group.template: l10n_mx.account_subgroup_regalías_sujetas_al_10% +DEL account.group.template: l10n_mx.account_subgroup_regalías_sujetas_al_10%_1 +DEL account.group.template: l10n_mx.account_subgroup_regalías_sujetas_al_10%_2 +DEL account.group.template: l10n_mx.account_subgroup_regalías_sujetas_al_10%_3 +DEL account.group.template: l10n_mx.account_subgroup_regalías_sujetas_al_15% +DEL account.group.template: l10n_mx.account_subgroup_regalías_sujetas_al_15%_1 +DEL account.group.template: l10n_mx.account_subgroup_regalías_sujetas_al_15%_2 +DEL account.group.template: l10n_mx.account_subgroup_regalías_sujetas_al_15%_3 +DEL account.group.template: l10n_mx.account_subgroup_regalías_sujetas_al_25% +DEL account.group.template: l10n_mx.account_subgroup_regalías_sujetas_al_25%_1 +DEL account.group.template: l10n_mx.account_subgroup_regalías_sujetas_al_25%_2 +DEL account.group.template: l10n_mx.account_subgroup_regalías_sujetas_al_25%_3 +DEL account.group.template: l10n_mx.account_subgroup_regalías_sujetas_al_30% +DEL account.group.template: l10n_mx.account_subgroup_regalías_sujetas_al_30%_1 +DEL account.group.template: l10n_mx.account_subgroup_regalías_sujetas_al_30%_2 +DEL account.group.template: l10n_mx.account_subgroup_regalías_sujetas_al_30%_3 +DEL account.group.template: l10n_mx.account_subgroup_regalías_sujetas_al_5% +DEL account.group.template: l10n_mx.account_subgroup_regalías_sujetas_al_5%_1 +DEL account.group.template: l10n_mx.account_subgroup_regalías_sujetas_al_5%_2 +DEL account.group.template: l10n_mx.account_subgroup_regalías_sujetas_al_5%_3 +DEL account.group.template: l10n_mx.account_subgroup_rentas_cobradas_por_anticipado_a_corto_plazo_extranjero +DEL account.group.template: l10n_mx.account_subgroup_rentas_cobradas_por_anticipado_a_corto_plazo_extranjero_parte_relacionada +DEL account.group.template: l10n_mx.account_subgroup_rentas_cobradas_por_anticipado_a_corto_plazo_nacional +DEL account.group.template: l10n_mx.account_subgroup_rentas_cobradas_por_anticipado_a_corto_plazo_nacional_parte_relacionada +DEL account.group.template: l10n_mx.account_subgroup_rentas_cobradas_por_anticipado_a_largo_plazo_extranjero +DEL account.group.template: l10n_mx.account_subgroup_rentas_cobradas_por_anticipado_a_largo_plazo_extranjero_parte_relacionada +DEL account.group.template: l10n_mx.account_subgroup_rentas_cobradas_por_anticipado_a_largo_plazo_nacional +DEL account.group.template: l10n_mx.account_subgroup_rentas_cobradas_por_anticipado_a_largo_plazo_nacional_parte_relacionada +DEL account.group.template: l10n_mx.account_subgroup_rentas_pagados_por_anticipado_extranjero +DEL account.group.template: l10n_mx.account_subgroup_rentas_pagados_por_anticipado_extranjero_parte_relacionada +DEL account.group.template: l10n_mx.account_subgroup_rentas_pagados_por_anticipado_nacional +DEL account.group.template: l10n_mx.account_subgroup_rentas_pagados_por_anticipado_nacional_parte_relacionada +DEL account.group.template: l10n_mx.account_subgroup_reserva_legal +DEL account.group.template: l10n_mx.account_subgroup_reserva_legal_1 +DEL account.group.template: l10n_mx.account_subgroup_resultado_de_ejercicios_anteriores +DEL account.group.template: l10n_mx.account_subgroup_resultado_del_ejercicio +DEL account.group.template: l10n_mx.account_subgroup_resultado_integral +DEL account.group.template: l10n_mx.account_subgroup_resultado_integral_de_ejercicios_anteriores +DEL account.group.template: l10n_mx.account_subgroup_retenciones_de_imss_a_los_trabajadores +DEL account.group.template: l10n_mx.account_subgroup_seguros_y_fianzas +DEL account.group.template: l10n_mx.account_subgroup_seguros_y_fianzas_1 +DEL account.group.template: l10n_mx.account_subgroup_seguros_y_fianzas_2 +DEL account.group.template: l10n_mx.account_subgroup_seguros_y_fianzas_3 +DEL account.group.template: l10n_mx.account_subgroup_seguros_y_fianzas_pagados_por_anticipado_extranjero +DEL account.group.template: l10n_mx.account_subgroup_seguros_y_fianzas_pagados_por_anticipado_extranjero_parte_relacionada +DEL account.group.template: l10n_mx.account_subgroup_seguros_y_fianzas_pagados_por_anticipado_nacional +DEL account.group.template: l10n_mx.account_subgroup_seguros_y_fianzas_pagados_por_anticipado_nacional_parte_relacionada +DEL account.group.template: l10n_mx.account_subgroup_servicio_médico +DEL account.group.template: l10n_mx.account_subgroup_servicio_médico_1 +DEL account.group.template: l10n_mx.account_subgroup_servicio_médico_2 +DEL account.group.template: l10n_mx.account_subgroup_servicio_médico_3 +DEL account.group.template: l10n_mx.account_subgroup_servicio_médico_4 +DEL account.group.template: l10n_mx.account_subgroup_servicios_administrativos +DEL account.group.template: l10n_mx.account_subgroup_servicios_administrativos_1 +DEL account.group.template: l10n_mx.account_subgroup_servicios_administrativos_2 +DEL account.group.template: l10n_mx.account_subgroup_servicios_administrativos_3 +DEL account.group.template: l10n_mx.account_subgroup_servicios_administrativos_partes_relacionadas +DEL account.group.template: l10n_mx.account_subgroup_servicios_administrativos_partes_relacionadas_1 +DEL account.group.template: l10n_mx.account_subgroup_servicios_administrativos_partes_relacionadas_2 +DEL account.group.template: l10n_mx.account_subgroup_servicios_administrativos_partes_relacionadas_3 +DEL account.group.template: l10n_mx.account_subgroup_socios,_accionistas_o_representante_legal +DEL account.group.template: l10n_mx.account_subgroup_socios,_accionistas_o_representante_legal_1 +DEL account.group.template: l10n_mx.account_subgroup_socios_y_accionistas +DEL account.group.template: l10n_mx.account_subgroup_subsidio_al_empleo +DEL account.group.template: l10n_mx.account_subgroup_subsidio_al_empleo_por_aplicar +DEL account.group.template: l10n_mx.account_subgroup_subsidio_al_empleo_por_aplicar_1 +DEL account.group.template: l10n_mx.account_subgroup_sueldos_y_salarios +DEL account.group.template: l10n_mx.account_subgroup_sueldos_y_salarios_1 +DEL account.group.template: l10n_mx.account_subgroup_sueldos_y_salarios_2 +DEL account.group.template: l10n_mx.account_subgroup_sueldos_y_salarios_3 +DEL account.group.template: l10n_mx.account_subgroup_sueldos_y_salarios_4 +DEL account.group.template: l10n_mx.account_subgroup_teléfono,_internet +DEL account.group.template: l10n_mx.account_subgroup_teléfono,_internet_1 +DEL account.group.template: l10n_mx.account_subgroup_teléfono,_internet_2 +DEL account.group.template: l10n_mx.account_subgroup_teléfono,_internet_3 +DEL account.group.template: l10n_mx.account_subgroup_terrenos +DEL account.group.template: l10n_mx.account_subgroup_terrenos_1 +DEL account.group.template: l10n_mx.account_subgroup_tiempos_extras +DEL account.group.template: l10n_mx.account_subgroup_tiempos_extras_1 +DEL account.group.template: l10n_mx.account_subgroup_tiempos_extras_2 +DEL account.group.template: l10n_mx.account_subgroup_tiempos_extras_3 +DEL account.group.template: l10n_mx.account_subgroup_tiempos_extras_4 +DEL account.group.template: l10n_mx.account_subgroup_transporte +DEL account.group.template: l10n_mx.account_subgroup_transporte_1 +DEL account.group.template: l10n_mx.account_subgroup_transporte_2 +DEL account.group.template: l10n_mx.account_subgroup_transporte_3 +DEL account.group.template: l10n_mx.account_subgroup_transporte_4 +DEL account.group.template: l10n_mx.account_subgroup_troqueles,_moldes,_matrices_y_herramental +DEL account.group.template: l10n_mx.account_subgroup_troqueles,_moldes,_matrices_y_herramental_1 +DEL account.group.template: l10n_mx.account_subgroup_ufin +DEL account.group.template: l10n_mx.account_subgroup_ufin_del_ejercicio +DEL account.group.template: l10n_mx.account_subgroup_uniformes +DEL account.group.template: l10n_mx.account_subgroup_uniformes_1 +DEL account.group.template: l10n_mx.account_subgroup_uniformes_2 +DEL account.group.template: l10n_mx.account_subgroup_uniformes_3 +DEL account.group.template: l10n_mx.account_subgroup_utilidad_cambiaria +DEL account.group.template: l10n_mx.account_subgroup_utilidad_cambiaria_extranjero_parte_relacionada +DEL account.group.template: l10n_mx.account_subgroup_utilidad_cambiaria_nacional_parte_relacionada +DEL account.group.template: l10n_mx.account_subgroup_utilidad_de_ejercicios_anteriores +DEL account.group.template: l10n_mx.account_subgroup_utilidad_del_ejercicio +DEL account.group.template: l10n_mx.account_subgroup_utilidad_o_pérdida_fiscal_en_venta_acciones_o_partes_sociales +DEL account.group.template: l10n_mx.account_subgroup_utilidad_o_pérdida_fiscal_en_venta_acciones_o_partes_sociales_1 +DEL account.group.template: l10n_mx.account_subgroup_utilidad_o_pérdida_fiscal_en_venta_y/o_baja_de_activo_fijo +DEL account.group.template: l10n_mx.account_subgroup_utilidad_o_pérdida_fiscal_en_venta_y/o_baja_de_activo_fijo_1 +DEL account.group.template: l10n_mx.account_subgroup_vacaciones +DEL account.group.template: l10n_mx.account_subgroup_vacaciones_1 +DEL account.group.template: l10n_mx.account_subgroup_vacaciones_2 +DEL account.group.template: l10n_mx.account_subgroup_vacaciones_3 +DEL account.group.template: l10n_mx.account_subgroup_vacaciones_4 +DEL account.group.template: l10n_mx.account_subgroup_ventas_y/o_servicios_exentos +DEL account.group.template: l10n_mx.account_subgroup_ventas_y/o_servicios_exentos_a_crédito +DEL account.group.template: l10n_mx.account_subgroup_ventas_y/o_servicios_exentos_de_contado +DEL account.group.template: l10n_mx.account_subgroup_ventas_y/o_servicios_exentos_extranjeros_partes_relacionadas +DEL account.group.template: l10n_mx.account_subgroup_ventas_y/o_servicios_exentos_nacionales_partes_relacionadas +DEL account.group.template: l10n_mx.account_subgroup_ventas_y/o_servicios_gravados_a_la_tasa_general +DEL account.group.template: l10n_mx.account_subgroup_ventas_y/o_servicios_gravados_a_la_tasa_general_a_crédito +DEL account.group.template: l10n_mx.account_subgroup_ventas_y/o_servicios_gravados_a_la_tasa_general_de_contado +DEL account.group.template: l10n_mx.account_subgroup_ventas_y/o_servicios_gravados_a_la_tasa_general_extranjeros_partes_relacionadas +DEL account.group.template: l10n_mx.account_subgroup_ventas_y/o_servicios_gravados_a_la_tasa_general_nacionales_partes_relacionadas +DEL account.group.template: l10n_mx.account_subgroup_ventas_y/o_servicios_gravados_al_0% +DEL account.group.template: l10n_mx.account_subgroup_ventas_y/o_servicios_gravados_al_0%_a_crédito +DEL account.group.template: l10n_mx.account_subgroup_ventas_y/o_servicios_gravados_al_0%_de_contado +DEL account.group.template: l10n_mx.account_subgroup_ventas_y/o_servicios_gravados_al_0%_extranjeros_partes_relacionadas +DEL account.group.template: l10n_mx.account_subgroup_ventas_y/o_servicios_gravados_al_0%_nacionales_partes_relacionadas +DEL account.group.template: l10n_mx.account_subgroup_ventas_y/o_servicios_gravados_realizados_en_zona_fronteriza_norte +DEL account.group.template: l10n_mx.account_subgroup_ventas_y/o_servicios_gravados_realizados_en_zona_fronteriza_norte_a_crédito +DEL account.group.template: l10n_mx.account_subgroup_ventas_y/o_servicios_gravados_realizados_en_zona_fronteriza_norte_de_contado +DEL account.group.template: l10n_mx.account_subgroup_vigilancia_y_seguridad +DEL account.group.template: l10n_mx.account_subgroup_vigilancia_y_seguridad_1 +DEL account.group.template: l10n_mx.account_subgroup_vigilancia_y_seguridad_2 +DEL account.group.template: l10n_mx.account_subgroup_vigilancia_y_seguridad_3 +DEL account.group.template: l10n_mx.account_subgroup_viáticos_y_gastos_de_viaje +DEL account.group.template: l10n_mx.account_subgroup_viáticos_y_gastos_de_viaje_1 +DEL account.group.template: l10n_mx.account_subgroup_viáticos_y_gastos_de_viaje_2 +DEL account.group.template: l10n_mx.account_subgroup_viáticos_y_gastos_de_viaje_3 +# NOTHING TO DO: New CoA loading system + +NEW account.report: l10n_mx.diot_report +NEW account.report.column: l10n_mx.diot_report_exempt +NEW account.report.column: l10n_mx.diot_report_importation_16 +NEW account.report.column: l10n_mx.diot_report_paid_0 +NEW account.report.column: l10n_mx.diot_report_paid_16 +NEW account.report.column: l10n_mx.diot_report_paid_16_non_cred +NEW account.report.column: l10n_mx.diot_report_paid_8 +NEW account.report.column: l10n_mx.diot_report_paid_8_non_cred +NEW account.report.column: l10n_mx.diot_report_refunds +NEW account.report.column: l10n_mx.diot_report_withheld +NEW account.report.expression: l10n_mx.tax_report_mx_diot_exempt_tag +NEW account.report.expression: l10n_mx.tax_report_mx_diot_importation_16_tag +NEW account.report.expression: l10n_mx.tax_report_mx_diot_paid_0_tag +NEW account.report.expression: l10n_mx.tax_report_mx_diot_paid_16_non_cred_tag +NEW account.report.expression: l10n_mx.tax_report_mx_diot_paid_16_tag +NEW account.report.expression: l10n_mx.tax_report_mx_diot_paid_8_non_cred_tag +NEW account.report.expression: l10n_mx.tax_report_mx_diot_paid_8_tag +NEW account.report.expression: l10n_mx.tax_report_mx_diot_refunds_tag +NEW account.report.expression: l10n_mx.tax_report_mx_diot_withheld_tag +NEW account.report.line: l10n_mx.diot_report_line +# NOTHING TO DO: Enterprise accounting reporting engine + +DEL account.tax.group: l10n_mx.tax_group_ieps_25 (noupdate) +DEL account.tax.group: l10n_mx.tax_group_ieps_26_5 (noupdate) +DEL account.tax.group: l10n_mx.tax_group_ieps_30 (noupdate) +DEL account.tax.group: l10n_mx.tax_group_ieps_53 (noupdate) +DEL account.tax.group: l10n_mx.tax_group_ieps_8 (noupdate) +DEL account.tax.group: l10n_mx.tax_group_isr_ret_10 (noupdate) +DEL account.tax.group: l10n_mx.tax_group_iva_0 (noupdate) +DEL account.tax.group: l10n_mx.tax_group_iva_16 (noupdate) +DEL account.tax.group: l10n_mx.tax_group_iva_8 (noupdate) +DEL account.tax.group: l10n_mx.tax_group_iva_ret_10 (noupdate) +DEL account.tax.group: l10n_mx.tax_group_iva_ret_1067 (noupdate) +DEL account.tax.group: l10n_mx.tax_group_iva_ret_4 (noupdate) +# NOTHING TO DO: The xml id refactor is handled by account post-migration + +DEL account.tax.template: l10n_mx.ieps_25_purchase +DEL account.tax.template: l10n_mx.ieps_25_sale +DEL account.tax.template: l10n_mx.ieps_26_5_purchase +DEL account.tax.template: l10n_mx.ieps_26_5_sale +DEL account.tax.template: l10n_mx.ieps_30_purchase +DEL account.tax.template: l10n_mx.ieps_30_sale +DEL account.tax.template: l10n_mx.ieps_53_purchase +DEL account.tax.template: l10n_mx.ieps_53_sale +DEL account.tax.template: l10n_mx.ieps_8_purchase +DEL account.tax.template: l10n_mx.ieps_8_sale +DEL account.tax.template: l10n_mx.tax1 +DEL account.tax.template: l10n_mx.tax12 +DEL account.tax.template: l10n_mx.tax13 +DEL account.tax.template: l10n_mx.tax14 +DEL account.tax.template: l10n_mx.tax16 +DEL account.tax.template: l10n_mx.tax17 +DEL account.tax.template: l10n_mx.tax2 +DEL account.tax.template: l10n_mx.tax3 +DEL account.tax.template: l10n_mx.tax5 +DEL account.tax.template: l10n_mx.tax7 +DEL account.tax.template: l10n_mx.tax8 +DEL account.tax.template: l10n_mx.tax9 +# NOTHING TO DO: New CoA loading system + +NEW ir.ui.view: l10n_mx.account_tax_form_inherit_l10n_mx +# NOTHING TO DO: Handled by ORM From 964c36971b531f944bcb2de96adbd2ba9a5d83db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20-=20Le=20Filament?= <30716308+remi-filament@users.noreply.github.com> Date: Wed, 25 Feb 2026 09:22:35 +0100 Subject: [PATCH 41/71] [OU-ADD] l10n_fr_hr_holidays: Migration scripts --- docsource/modules160-170.rst | 2 +- .../17.0.1.0/post-migration.py | 55 +++++++++++++++++++ .../17.0.1.0/upgrade_analysis_work.txt | 11 ++++ 3 files changed, 67 insertions(+), 1 deletion(-) create mode 100644 openupgrade_scripts/scripts/l10n_fr_hr_holidays/17.0.1.0/post-migration.py create mode 100644 openupgrade_scripts/scripts/l10n_fr_hr_holidays/17.0.1.0/upgrade_analysis_work.txt diff --git a/docsource/modules160-170.rst b/docsource/modules160-170.rst index 8845cd7867bd..018891259700 100644 --- a/docsource/modules160-170.rst +++ b/docsource/modules160-170.rst @@ -370,7 +370,7 @@ Module coverage 16.0 -> 17.0 +---------------------------------------------------+----------------------+-------------------------------------------------+ | l10n_fr_fec | |No DB layout changes. | +---------------------------------------------------+----------------------+-------------------------------------------------+ -| |new| l10n_fr_hr_holidays | | | +| |new| l10n_fr_hr_holidays | Done | | +---------------------------------------------------+----------------------+-------------------------------------------------+ | |new| l10n_fr_hr_work_entry_holidays | | | +---------------------------------------------------+----------------------+-------------------------------------------------+ diff --git a/openupgrade_scripts/scripts/l10n_fr_hr_holidays/17.0.1.0/post-migration.py b/openupgrade_scripts/scripts/l10n_fr_hr_holidays/17.0.1.0/post-migration.py new file mode 100644 index 000000000000..70ef98e87edf --- /dev/null +++ b/openupgrade_scripts/scripts/l10n_fr_hr_holidays/17.0.1.0/post-migration.py @@ -0,0 +1,55 @@ +# Copyright 2026 Le Filament +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). +from openupgradelib import openupgrade + + +def _assign_default_leave_type(env): + """ + We try to compute most probable leave type for FR companies + in the following order : + 1. default leave type from hr_holidays still active + 2. leave type with most common default configuration + 3. leave type accessible to that company, configured in days + or half days and of type = "leave" + for case 2 or 3, ordering by sequence and taking the first found + """ + fr_company_ids = ( + env["res.company"].search([]).filtered(lambda c: c.country_id.code == "FR") + ) + default_leave_type = env.ref("hr_holidays.holiday_status_cl", False) + for company in fr_company_ids: + if ( + default_leave_type + and default_leave_type.active + and default_leave_type.company_id.id in [False, company.id] + ): + leave_type = default_leave_type + else: + leave_type = env["hr.leave.type"].search( + [ + ("company_id", "in", [False, company.id]), + ("requires_allocation", "=", "yes"), + ("employee_requests", "=", "no"), + ("request_unit", "in", ["day", "half_day"]), + ("leave_validation_type", "!=", "no_validation"), + ("time_type", "=", "leave"), + ], + order="sequence asc", + limit=1, + ) + if not leave_type: + leave_type = env["hr.leave.type"].search( + [ + ("company_id", "in", [False, company.id]), + ("request_unit", "in", ["day", "half_day"]), + ("time_type", "=", "leave"), + ], + order="sequence asc", + limit=1, + ) + company.l10n_fr_reference_leave_type = leave_type + + +@openupgrade.migrate(no_version=True) +def migrate(env, version): + _assign_default_leave_type(env) diff --git a/openupgrade_scripts/scripts/l10n_fr_hr_holidays/17.0.1.0/upgrade_analysis_work.txt b/openupgrade_scripts/scripts/l10n_fr_hr_holidays/17.0.1.0/upgrade_analysis_work.txt new file mode 100644 index 000000000000..a231c5dfdcf9 --- /dev/null +++ b/openupgrade_scripts/scripts/l10n_fr_hr_holidays/17.0.1.0/upgrade_analysis_work.txt @@ -0,0 +1,11 @@ +---Models in module 'l10n_fr_hr_holidays'--- +---Fields in module 'l10n_fr_hr_holidays'--- +l10n_fr_hr_holidays / hr.leave / l10n_fr_date_to_changed (boolean): NEW +# NOTHING TO DO: new functionality will be used on new leaves + +l10n_fr_hr_holidays / res.company / l10n_fr_reference_leave_type (many2one): NEW relation: hr.leave.type +# DONE: post-migration: initialize this field with most probable holiday type +---XML records in module 'l10n_fr_hr_holidays'--- +NEW ir.ui.menu: l10n_fr_hr_holidays.hr_holidays_menu_configuration +NEW ir.ui.view: l10n_fr_hr_holidays.res_config_settings_view_form +# NOTHING TO DO: handled by ORM From a69acfb95b80eb5280b59bd7314d807567a2a887 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Ba=C3=B1=C3=B3n?= Date: Wed, 25 Feb 2026 16:15:31 +0100 Subject: [PATCH 42/71] [OU-IMP] mail_template_multi_attachment: Merge into mail TT61183 --- openupgrade_scripts/apriori.py | 1 + .../scripts/mail/17.0.1.15/post-migration.py | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/openupgrade_scripts/apriori.py b/openupgrade_scripts/apriori.py index 6d19e75179ff..9f0ecd75c57b 100644 --- a/openupgrade_scripts/apriori.py +++ b/openupgrade_scripts/apriori.py @@ -76,6 +76,7 @@ # OCA/social "mail_activity_plan": "mail", "mass_mailing_custom_unsubscribe_event": "mass_mailing", + "mail_template_multi_attachment": "mail", # OCA/stock-logistics-warehouse "stock_lot_filter_available": "stock", # OCA/web diff --git a/openupgrade_scripts/scripts/mail/17.0.1.15/post-migration.py b/openupgrade_scripts/scripts/mail/17.0.1.15/post-migration.py index e78c95c1830f..1fe01c65151f 100644 --- a/openupgrade_scripts/scripts/mail/17.0.1.15/post-migration.py +++ b/openupgrade_scripts/scripts/mail/17.0.1.15/post-migration.py @@ -151,6 +151,24 @@ def _mail_activity_plan_template(env): ) +def _handle_mail_template_multi_attachment(env): + """OCA module mail_template_multi_attachment got its functionality implemented in + core odoo. + """ + if openupgrade.table_exists(env.cr, "mail_template_report"): + openupgrade.logged_query( + env.cr, + """ + INSERT INTO mail_template_ir_actions_report_rel + (mail_template_id, ir_actions_report_id) + SELECT mtr.mail_template_id, + mtr.report_template_id + FROM mail_template_report mtr + ON CONFLICT DO NOTHING; + """, + ) + + @openupgrade.migrate() def migrate(env, version): openupgrade.load_data(env, "mail", "17.0.1.15/noupdate_changes.xml") @@ -164,3 +182,4 @@ def migrate(env, version): _mail_template_convert_report_template_m2o_to_m2m(env) _fill_mail_message_outgoing(env) _mail_activity_plan_template(env) + _handle_mail_template_multi_attachment(env) From d67274ee6b1fb11fb9b2635de933d5a0ccd200c0 Mon Sep 17 00:00:00 2001 From: "Pedro M. Baeza" Date: Tue, 3 Mar 2026 20:09:48 +0100 Subject: [PATCH 43/71] [OU-FIX] l10n_mx: Add missing tags to safely remove And re-ordered them following the same order than: https://github.com/odoo/odoo/blob/16.0/addons/l10n_mx/data/account.account.tag.csv --- .../l10n_mx/17.0.2.2/post-migration.py | 20 +++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/openupgrade_scripts/scripts/l10n_mx/17.0.2.2/post-migration.py b/openupgrade_scripts/scripts/l10n_mx/17.0.2.2/post-migration.py index 61f845af459e..22c9881098c9 100644 --- a/openupgrade_scripts/scripts/l10n_mx/17.0.2.2/post-migration.py +++ b/openupgrade_scripts/scripts/l10n_mx/17.0.2.2/post-migration.py @@ -21,17 +21,29 @@ def _compute_new_tax_type(env): def _delete_analytic_tags(env): l10n_mx_xmlids = [ + "tag_iva", + "tag_isr", + "tag_ieps", "tag_diot_0", + "tag_diot_16_refund", "tag_diot_16", "tag_diot_16_imp", + "tag_diot_16_imp_non_cre", + "tag_diot_16_imp_refund", "tag_diot_16_non_cre", "tag_diot_8", "tag_diot_8_non_cre", - "tag_diot_exento", + "tag_diot_8_refund", + "tag_diot_8_south", + "tag_diot_8_south_non_cre", + "tag_diot_8_south_refund", + "tag_diot_16_imp_int", + "tag_diot_16_imp_int_non_cre", + "tag_diot_16_imp_int_refund", "tag_diot_ret", - "tag_ieps", - "tag_isr", - "tag_iva", + "tag_diot_exento", + "tag_diot_exento_imp", + "tag_diot_no_obj", ] openupgrade.delete_records_safely_by_xml_id( env, [f"l10n_mx.{x}" for x in l10n_mx_xmlids] From 2a00364c218b7b37a717d0f61279b0e647568d28 Mon Sep 17 00:00:00 2001 From: Alexis de Lattre Date: Wed, 4 Mar 2026 22:18:46 +0100 Subject: [PATCH 44/71] [FIX] account: Only set res_field=invoice_pdf_report_file on customer invoice/refunds --- openupgrade_scripts/scripts/account/17.0.1.2/post-migration.py | 1 + 1 file changed, 1 insertion(+) diff --git a/openupgrade_scripts/scripts/account/17.0.1.2/post-migration.py b/openupgrade_scripts/scripts/account/17.0.1.2/post-migration.py index ecdabb6d28cc..8fcf058f6a33 100644 --- a/openupgrade_scripts/scripts/account/17.0.1.2/post-migration.py +++ b/openupgrade_scripts/scripts/account/17.0.1.2/post-migration.py @@ -117,6 +117,7 @@ def _am_update_invoice_pdf_report_file(env): res_id = am.id FROM account_move am WHERE am.message_main_attachment_id = ia.id + AND am.move_type IN ('out_invoice', 'out_refund') """, ) From 860f20ca7d220adc21f08607206f013493032d30 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miquel=20Ra=C3=AFch?= Date: Thu, 16 Apr 2026 10:51:08 +0200 Subject: [PATCH 45/71] [IMP] apriori: rename mail_template_attachment_i18n --- openupgrade_scripts/apriori.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/openupgrade_scripts/apriori.py b/openupgrade_scripts/apriori.py index 9f0ecd75c57b..dc2f31e7c6f8 100644 --- a/openupgrade_scripts/apriori.py +++ b/openupgrade_scripts/apriori.py @@ -12,6 +12,8 @@ "delivery_carrier_customer_info": "partner_delivery_info", # OCA/l10n-spain "l10n_es_pos": "l10n_es_pos_oca", + # OCA/server-tools + "mail_template_attachment_i18n": "mail_template_attachment_per_lang", # OCA/social "mail_activity_unlink_log": "mail_activity_cancel_tracking", } From c93597d154c1679127d2d77788e3c9ace87014bb Mon Sep 17 00:00:00 2001 From: Ane Date: Thu, 23 Apr 2026 12:19:37 +0200 Subject: [PATCH 46/71] [17.0][FIX] stock: prefill picked for done moves to avoid massive recompute --- .../scripts/stock/17.0.1.1/pre-migration.py | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/openupgrade_scripts/scripts/stock/17.0.1.1/pre-migration.py b/openupgrade_scripts/scripts/stock/17.0.1.1/pre-migration.py index 82bf533645a9..dc7c026968bc 100644 --- a/openupgrade_scripts/scripts/stock/17.0.1.1/pre-migration.py +++ b/openupgrade_scripts/scripts/stock/17.0.1.1/pre-migration.py @@ -35,9 +35,56 @@ def fix_move_line_quantity(env): """, ) +def prefill_picked(env): + + """ + Pre-fill picked for done stock moves and their move lines + to reduce ORM recomputation during migration. + """ + + openupgrade.logged_query( + env.cr, + """ + ALTER TABLE stock_move + ADD COLUMN IF NOT EXISTS picked boolean + """, + ) + + openupgrade.logged_query( + env.cr, + """ + ALTER TABLE stock_move_line + ADD COLUMN IF NOT EXISTS picked boolean + """, + ) + + openupgrade.logged_query( + env.cr, + """ + UPDATE stock_move_line sml + SET picked = TRUE + FROM stock_move sm + WHERE sml.move_id = sm.id + AND sm.state = 'done' + AND (sml.picked IS DISTINCT FROM TRUE) + """, + ) + + openupgrade.logged_query( + env.cr, + """ + UPDATE stock_move + SET picked = TRUE + WHERE state = 'done' + AND (picked IS DISTINCT FROM TRUE) + """, + ) + + @openupgrade.migrate() def migrate(env, version): openupgrade.rename_fields(env, _field_renames) openupgrade.copy_columns(env.cr, _column_copies) fix_move_line_quantity(env) + prefill_picked(env) From 14b556dd7c962801187e558418d338c9185e729c Mon Sep 17 00:00:00 2001 From: Ane Date: Thu, 23 Apr 2026 12:30:26 +0200 Subject: [PATCH 47/71] [IMP] stock: apply pre-commit fixes --- openupgrade_scripts/scripts/stock/17.0.1.1/pre-migration.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/openupgrade_scripts/scripts/stock/17.0.1.1/pre-migration.py b/openupgrade_scripts/scripts/stock/17.0.1.1/pre-migration.py index dc7c026968bc..c72f62f85df9 100644 --- a/openupgrade_scripts/scripts/stock/17.0.1.1/pre-migration.py +++ b/openupgrade_scripts/scripts/stock/17.0.1.1/pre-migration.py @@ -35,8 +35,8 @@ def fix_move_line_quantity(env): """, ) -def prefill_picked(env): +def prefill_picked(env): """ Pre-fill picked for done stock moves and their move lines to reduce ORM recomputation during migration. @@ -81,7 +81,6 @@ def prefill_picked(env): ) - @openupgrade.migrate() def migrate(env, version): openupgrade.rename_fields(env, _field_renames) From 09153ae4a17a1b1bda66992680e962d29a72385c Mon Sep 17 00:00:00 2001 From: Ane Date: Fri, 24 Apr 2026 08:05:16 +0200 Subject: [PATCH 48/71] [IMP] stock: prefill picked using add_columns with default True --- .../scripts/stock/17.0.1.1/pre-migration.py | 44 ++++++++----------- 1 file changed, 18 insertions(+), 26 deletions(-) diff --git a/openupgrade_scripts/scripts/stock/17.0.1.1/pre-migration.py b/openupgrade_scripts/scripts/stock/17.0.1.1/pre-migration.py index c72f62f85df9..964dcfe841af 100644 --- a/openupgrade_scripts/scripts/stock/17.0.1.1/pre-migration.py +++ b/openupgrade_scripts/scripts/stock/17.0.1.1/pre-migration.py @@ -38,45 +38,37 @@ def fix_move_line_quantity(env): def prefill_picked(env): """ - Pre-fill picked for done stock moves and their move lines - to reduce ORM recomputation during migration. + Pre-fill picked for stock moves and move lines to reduce ORM + recomputation during migration. """ - - openupgrade.logged_query( - env.cr, - """ - ALTER TABLE stock_move - ADD COLUMN IF NOT EXISTS picked boolean - """, + openupgrade.add_columns( + env, + [ + ("stock.move", "picked", "boolean", True, "stock_move"), + ("stock.move.line", "picked", "boolean", True, "stock_move_line"), + ], ) - - openupgrade.logged_query( - env.cr, - """ - ALTER TABLE stock_move_line - ADD COLUMN IF NOT EXISTS picked boolean - """, - ) - openupgrade.logged_query( env.cr, """ UPDATE stock_move_line sml - SET picked = TRUE + SET picked = FALSE FROM stock_move sm WHERE sml.move_id = sm.id - AND sm.state = 'done' - AND (sml.picked IS DISTINCT FROM TRUE) + AND sm.state != 'done' """, ) - openupgrade.logged_query( env.cr, """ - UPDATE stock_move - SET picked = TRUE - WHERE state = 'done' - AND (picked IS DISTINCT FROM TRUE) + UPDATE stock_move sm + SET picked = False + FROM stock_move sm2 + LEFT JOIN stock_move_line sml + ON sml.move_id = sm2.id + WHERE sm.state NOT IN ('done', 'cancel') + AND sml.id IS NULL + AND sm.id = sm2.id """, ) From 14251537bdc80b95801f56c6bb5eaccbf0c5971c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miquel=20Ra=C3=AFch?= Date: Wed, 6 May 2026 18:27:06 +0200 Subject: [PATCH 49/71] [FIX] docsource: mark as done merged done modules --- docsource/modules160-170.rst | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/docsource/modules160-170.rst b/docsource/modules160-170.rst index a665a0772d1c..3ec4d9f95f15 100644 --- a/docsource/modules160-170.rst +++ b/docsource/modules160-170.rst @@ -28,7 +28,7 @@ Module coverage 16.0 -> 17.0 +---------------------------------------------------+----------------------+-------------------------------------------------+ | account_payment | Done | | +---------------------------------------------------+----------------------+-------------------------------------------------+ -| |del| account_payment_invoice_online_payment_patch| |Merged into account_payment. | +| |del| account_payment_invoice_online_payment_patch| Done |Merged into account_payment. | +---------------------------------------------------+----------------------+-------------------------------------------------+ | |new| account_payment_term | Nothing to do | | +---------------------------------------------------+----------------------+-------------------------------------------------+ @@ -38,7 +38,7 @@ Module coverage 16.0 -> 17.0 +---------------------------------------------------+----------------------+-------------------------------------------------+ | account_qr_code_sepa | Nothing to do | | +---------------------------------------------------+----------------------+-------------------------------------------------+ -| |del| account_sequence | |Merged into account. | +| |del| account_sequence | Done |Merged into account. | +---------------------------------------------------+----------------------+-------------------------------------------------+ | account_tax_python | | | +---------------------------------------------------+----------------------+-------------------------------------------------+ @@ -642,7 +642,7 @@ Module coverage 16.0 -> 17.0 +---------------------------------------------------+----------------------+-------------------------------------------------+ | loyalty | Nothing to do | | +---------------------------------------------------+----------------------+-------------------------------------------------+ -| |del| loyalty_delivery | |Merged into sale_loyalty_delivery. | +| |del| loyalty_delivery | Done |Merged into sale_loyalty_delivery. | +---------------------------------------------------+----------------------+-------------------------------------------------+ | lunch | | | +---------------------------------------------------+----------------------+-------------------------------------------------+ @@ -770,9 +770,9 @@ Module coverage 16.0 -> 17.0 +---------------------------------------------------+----------------------+-------------------------------------------------+ | pos_adyen | |No DB layout changes. | +---------------------------------------------------+----------------------+-------------------------------------------------+ -| |del| pos_cache | |Merged into point_of_sale. | +| |del| pos_cache | Done |Merged into point_of_sale. | +---------------------------------------------------+----------------------+-------------------------------------------------+ -| |del| pos_daily_sales_reports | |Merged into point_of_sale. | +| |del| pos_daily_sales_reports | Done |Merged into point_of_sale. | +---------------------------------------------------+----------------------+-------------------------------------------------+ | pos_discount | Nothing to do |No DB layout changes. | +---------------------------------------------------+----------------------+-------------------------------------------------+ @@ -870,7 +870,7 @@ Module coverage 16.0 -> 17.0 +---------------------------------------------------+----------------------+-------------------------------------------------+ | purchase_mrp | Nothing to do | | +---------------------------------------------------+----------------------+-------------------------------------------------+ -| |del| purchase_price_diff | |Merged into purchase_stock. | +| |del| purchase_price_diff | Done |Merged into purchase_stock. | +---------------------------------------------------+----------------------+-------------------------------------------------+ | purchase_product_matrix | Nothing to do |No DB layout changes. | +---------------------------------------------------+----------------------+-------------------------------------------------+ @@ -1014,7 +1014,7 @@ Module coverage 16.0 -> 17.0 +---------------------------------------------------+----------------------+-------------------------------------------------+ | |new| web_hierarchy | Nothing to do | | +---------------------------------------------------+----------------------+-------------------------------------------------+ -| |del| web_kanban_gauge | |Merged into web. | +| |del| web_kanban_gauge | Done |Merged into web. | +---------------------------------------------------+----------------------+-------------------------------------------------+ | web_tour | Nothing to do | | +---------------------------------------------------+----------------------+-------------------------------------------------+ @@ -1060,7 +1060,7 @@ Module coverage 16.0 -> 17.0 +---------------------------------------------------+----------------------+-------------------------------------------------+ | website_event_meet_quiz | | | +---------------------------------------------------+----------------------+-------------------------------------------------+ -| |del| website_event_questions | |Merged into website_event. | +| |del| website_event_questions | Done |Merged into website_event. | +---------------------------------------------------+----------------------+-------------------------------------------------+ | website_event_sale | Nothing to do | | +---------------------------------------------------+----------------------+-------------------------------------------------+ @@ -1122,7 +1122,7 @@ Module coverage 16.0 -> 17.0 +---------------------------------------------------+----------------------+-------------------------------------------------+ | website_sale_loyalty | Nothing to do |No DB layout changes. | +---------------------------------------------------+----------------------+-------------------------------------------------+ -| |del| website_sale_loyalty_delivery | |Merged into website_sale_loyalty. | +| |del| website_sale_loyalty_delivery | Done |Merged into website_sale_loyalty. | +---------------------------------------------------+----------------------+-------------------------------------------------+ | |new| website_sale_mondialrelay | |Renamed from website_sale_delivery_mondialrelay. | +---------------------------------------------------+----------------------+-------------------------------------------------+ @@ -1134,7 +1134,7 @@ Module coverage 16.0 -> 17.0 +---------------------------------------------------+----------------------+-------------------------------------------------+ | website_sale_stock | Nothing to do |No DB layout changes. | +---------------------------------------------------+----------------------+-------------------------------------------------+ -| |del| website_sale_stock_product_configurator | |Merged into website_sale_product_configurator. | +| |del| website_sale_stock_product_configurator | Done |Merged into website_sale_product_configurator. | +---------------------------------------------------+----------------------+-------------------------------------------------+ | website_sale_stock_wishlist | |No DB layout changes. | +---------------------------------------------------+----------------------+-------------------------------------------------+ From cb8fd36e87c6942f52403610a26f0c15c02f7c52 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miquel=20Ra=C3=AFch?= Date: Thu, 7 May 2026 15:59:21 +0200 Subject: [PATCH 50/71] [MIG] project_hr_expense: nothing to do --- docsource/modules160-170.rst | 2 +- .../project_hr_expense/17.0.1.0/upgrade_analysis_work.txt | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 openupgrade_scripts/scripts/project_hr_expense/17.0.1.0/upgrade_analysis_work.txt diff --git a/docsource/modules160-170.rst b/docsource/modules160-170.rst index 3ec4d9f95f15..ca145a4e913b 100644 --- a/docsource/modules160-170.rst +++ b/docsource/modules160-170.rst @@ -850,7 +850,7 @@ Module coverage 16.0 -> 17.0 +---------------------------------------------------+----------------------+-------------------------------------------------+ | |new| project_account | Nothing to do | | +---------------------------------------------------+----------------------+-------------------------------------------------+ -| project_hr_expense | |No DB layout changes. | +| project_hr_expense | Nothing to do |No DB layout changes. | +---------------------------------------------------+----------------------+-------------------------------------------------+ | project_mail_plugin | | | +---------------------------------------------------+----------------------+-------------------------------------------------+ diff --git a/openupgrade_scripts/scripts/project_hr_expense/17.0.1.0/upgrade_analysis_work.txt b/openupgrade_scripts/scripts/project_hr_expense/17.0.1.0/upgrade_analysis_work.txt new file mode 100644 index 000000000000..72380062844b --- /dev/null +++ b/openupgrade_scripts/scripts/project_hr_expense/17.0.1.0/upgrade_analysis_work.txt @@ -0,0 +1,5 @@ +---Models in module 'project_hr_expense'--- +---Fields in module 'project_hr_expense'--- +---XML records in module 'project_hr_expense'--- +---nothing has changed in this module-- +# NOTHING TO DO From 83c0120ad196df4b6ed0077427fc08b2cbc3c04d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miquel=20Ra=C3=AFch?= Date: Thu, 7 May 2026 16:19:45 +0200 Subject: [PATCH 51/71] [MIG] project_sale_expense: nothing to do --- docsource/modules160-170.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docsource/modules160-170.rst b/docsource/modules160-170.rst index ca145a4e913b..f1a66eaadc70 100644 --- a/docsource/modules160-170.rst +++ b/docsource/modules160-170.rst @@ -858,7 +858,7 @@ Module coverage 16.0 -> 17.0 +---------------------------------------------------+----------------------+-------------------------------------------------+ | project_purchase | Nothing to do |No DB layout changes. | +---------------------------------------------------+----------------------+-------------------------------------------------+ -| project_sale_expense | | | +| project_sale_expense | Nothing to do | | +---------------------------------------------------+----------------------+-------------------------------------------------+ | project_sms | |No DB layout changes. | +---------------------------------------------------+----------------------+-------------------------------------------------+ From 5aec35660b2f0612794d056e7b5a232702e6382a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miquel=20Ra=C3=AFch?= Date: Thu, 7 May 2026 16:27:57 +0200 Subject: [PATCH 52/71] [MIG] sale_project_stock: nothing to do --- docsource/modules160-170.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docsource/modules160-170.rst b/docsource/modules160-170.rst index f1a66eaadc70..2f8a36648067 100644 --- a/docsource/modules160-170.rst +++ b/docsource/modules160-170.rst @@ -918,7 +918,7 @@ Module coverage 16.0 -> 17.0 +---------------------------------------------------+----------------------+-------------------------------------------------+ | sale_project | Done | | +---------------------------------------------------+----------------------+-------------------------------------------------+ -| sale_project_stock | | | +| sale_project_stock | Nothing to do | | +---------------------------------------------------+----------------------+-------------------------------------------------+ | sale_purchase | Nothing to do |No DB layout changes. | +---------------------------------------------------+----------------------+-------------------------------------------------+ From 7b061ce2a9740bdcbbba816fb4003cf5a2cc5eb6 Mon Sep 17 00:00:00 2001 From: Carlos Roca Date: Wed, 24 Jun 2026 11:14:40 +0200 Subject: [PATCH 53/71] [FIX] stock: picked not synchronized between stock.move and stock.move.line When the stock.move has stock.move.line related, the value of the stock.move was not set to False but it can have stock.move.line with the falsy value, so check if the value of the lines are False so set the value of the move. --- .../scripts/stock/17.0.1.1/pre-migration.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/openupgrade_scripts/scripts/stock/17.0.1.1/pre-migration.py b/openupgrade_scripts/scripts/stock/17.0.1.1/pre-migration.py index 964dcfe841af..a51efed1fd6b 100644 --- a/openupgrade_scripts/scripts/stock/17.0.1.1/pre-migration.py +++ b/openupgrade_scripts/scripts/stock/17.0.1.1/pre-migration.py @@ -71,6 +71,17 @@ def prefill_picked(env): AND sm.id = sm2.id """, ) + # Need to set sms picked to False when the related smls are not picked + openupgrade.logged_query( + env.cr, + """ + UPDATE stock_move sm + SET picked=False + FROM stock_move_line sml + WHERE sml.move_id = sm.id + AND NOT sml.picked + """, + ) @openupgrade.migrate() From ae5c3872298fb1d929f81c39bb41d8977ee768ba Mon Sep 17 00:00:00 2001 From: Holger Brunn Date: Fri, 7 Nov 2025 07:41:05 +0100 Subject: [PATCH 54/71] [FIX] don't set install_filename when loading views from openupgrade_scripts fixes #5437 Changes compared to 527770f: - use a view from a 17.0.x noupdate_changes.xml file instead of a 18.0.x one in unit test - disable pylint warning due to voluntary context override --- .../odoo/addons/base/models/ir_ui_view.py | 19 +++++++++++++++++++ .../scripts/portal/tests/test_arch_fs.py | 16 ++++++++++++++++ 2 files changed, 35 insertions(+) create mode 100644 openupgrade_scripts/scripts/portal/tests/test_arch_fs.py diff --git a/openupgrade_framework/odoo_patch/odoo/addons/base/models/ir_ui_view.py b/openupgrade_framework/odoo_patch/odoo/addons/base/models/ir_ui_view.py index 0cec05eab184..fa959248a760 100644 --- a/openupgrade_framework/odoo_patch/odoo/addons/base/models/ir_ui_view.py +++ b/openupgrade_framework/odoo_patch/odoo/addons/base/models/ir_ui_view.py @@ -5,6 +5,7 @@ from odoo import api from odoo.exceptions import ValidationError +from odoo.modules.module import get_resource_from_path from odoo.tools import mute_logger from odoo.addons.base.models.ir_ui_view import NameManager, View @@ -85,6 +86,22 @@ def _check_field_paths(self, node, field_paths, model_name, use): pass +def _inverse_arch(self): + """ + Remove install_filename from context if it's from openupgrade_scripts. + Without this, arch_fs will point to openupgrade_scripts' file which most likely + won't exist when the migrated database is deployed, which breaks resetting views + """ + if "install_filename" in self._context: + path_info = get_resource_from_path(self._context["install_filename"]) + if path_info[0] == "openupgrade_scripts": + # Needs to override the context to remove the install_filename + self = self.with_context( # pylint: disable=context-overridden + {k: v for k, v in self._context.items() if k != "install_filename"} + ) + return _inverse_arch._original_method(self) + + _check_xml._original_method = View._check_xml View._check_xml = _check_xml check._original_method = NameManager.check @@ -93,3 +110,5 @@ def _check_field_paths(self, node, field_paths, model_name, use): View._raise_view_error = _raise_view_error _check_field_paths._original_method = View._check_field_paths View._check_field_paths = _check_field_paths +_inverse_arch._original_method = View._inverse_arch +View._inverse_arch = _inverse_arch diff --git a/openupgrade_scripts/scripts/portal/tests/test_arch_fs.py b/openupgrade_scripts/scripts/portal/tests/test_arch_fs.py new file mode 100644 index 000000000000..3d0c8f485d5e --- /dev/null +++ b/openupgrade_scripts/scripts/portal/tests/test_arch_fs.py @@ -0,0 +1,16 @@ +from odoo.tests import TransactionCase + +from odoo.addons.openupgrade_framework import openupgrade_test + + +@openupgrade_test +class TestArchFs(TransactionCase): + def test_arch_fs(self): + """ + Test that we didn't overwrite arch_fs with the path to the + noupdate changes file + """ + self.assertNotIn( + "openupgrade_scripts", + self.env.ref("portal.portal_share_template").arch_fs, + ) From eaecad0932c40fd44b94c1f33acd50e2945211e2 Mon Sep 17 00:00:00 2001 From: "Pedro M. Baeza" Date: Wed, 1 Jul 2026 13:23:44 +0200 Subject: [PATCH 55/71] [FIX] openupgrade_framework: Allow missing path_info For avoiding this error when using `load_data` openupgradelib method: ``` ... File "/opt/odoo/custom/src/odoo/odoo/models.py", line 5094, in _load_records data['record']._load_records_write(data['values']) File "/opt/odoo/custom/src/odoo/odoo/addons/base/models/ir_ui_view.py", line 2171, in _load_records_write super(View, self)._load_records_write(values) File "/opt/odoo/custom/src/odoo/odoo/models.py", line 5025, in _load_records_write self.write(values) ... File "/opt/odoo/auto/addons/openupgrade_framework/odoo_patch/odoo/addons/base/models/ir_ui_view.py", line 97, in _inverse_arch if path_info[0] == "openupgrade_scripts": TypeError: 'NoneType' object is not subscriptable ``` --- .../odoo_patch/odoo/addons/base/models/ir_ui_view.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openupgrade_framework/odoo_patch/odoo/addons/base/models/ir_ui_view.py b/openupgrade_framework/odoo_patch/odoo/addons/base/models/ir_ui_view.py index fa959248a760..402362253dbb 100644 --- a/openupgrade_framework/odoo_patch/odoo/addons/base/models/ir_ui_view.py +++ b/openupgrade_framework/odoo_patch/odoo/addons/base/models/ir_ui_view.py @@ -94,7 +94,7 @@ def _inverse_arch(self): """ if "install_filename" in self._context: path_info = get_resource_from_path(self._context["install_filename"]) - if path_info[0] == "openupgrade_scripts": + if path_info and path_info[0] == "openupgrade_scripts": # Needs to override the context to remove the install_filename self = self.with_context( # pylint: disable=context-overridden {k: v for k, v in self._context.items() if k != "install_filename"} From abbb44384956be635b8b3a45f809cc1e8d3a4fea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Ba=C3=B1=C3=B3n?= Date: Tue, 7 Jul 2026 09:51:10 +0200 Subject: [PATCH 56/71] [IMP] base: Load additional renames/merges from env. Backport of https://github.com/OCA/OpenUpgrade/pull/5765 TT63118 @Tecnativa --- .../scripts/base/17.0.1.3/pre-migration.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/openupgrade_scripts/scripts/base/17.0.1.3/pre-migration.py b/openupgrade_scripts/scripts/base/17.0.1.3/pre-migration.py index df2dbc076918..b1443c4a4f4e 100644 --- a/openupgrade_scripts/scripts/base/17.0.1.3/pre-migration.py +++ b/openupgrade_scripts/scripts/base/17.0.1.3/pre-migration.py @@ -263,9 +263,14 @@ def migrate(cr, version): "recommended to run the Odoo with --load=openupgrade_framework " "when migrating your database." ) - openupgrade.update_module_names(cr, renamed_modules.items()) + openupgrade.update_module_names( + cr, renamed_modules.items(), environment_namespec=True + ) + _handle_l10n_de_mis_reports_xmlids(cr) - openupgrade.update_module_names(cr, merged_modules.items(), merge_modules=True) + openupgrade.update_module_names( + cr, merged_modules.items(), merge_modules=True, environment_namespec=True + ) openupgrade.clean_transient_models(cr) openupgrade.rename_xmlids(cr, _xmlids_renames) openupgrade.rename_columns(cr, _column_renames) From 4ee8f188f3a4af72a2563bc37a7ab5fe69444712 Mon Sep 17 00:00:00 2001 From: Pilar Vargas Date: Thu, 9 Jul 2026 12:26:07 +0200 Subject: [PATCH 57/71] [OU-ADD] mass_mailing_themes: Nothing to do TT63295 --- docsource/modules160-170.rst | 2 +- .../17.0.1.2/upgrade_analysis_work.txt | 23 +++++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 openupgrade_scripts/scripts/mass_mailing_themes/17.0.1.2/upgrade_analysis_work.txt diff --git a/docsource/modules160-170.rst b/docsource/modules160-170.rst index 2f8a36648067..52824f4254ff 100644 --- a/docsource/modules160-170.rst +++ b/docsource/modules160-170.rst @@ -680,7 +680,7 @@ Module coverage 16.0 -> 17.0 +---------------------------------------------------+----------------------+-------------------------------------------------+ | mass_mailing_sms | | | +---------------------------------------------------+----------------------+-------------------------------------------------+ -| mass_mailing_themes | | | +| mass_mailing_themes | Nothing to do | | +---------------------------------------------------+----------------------+-------------------------------------------------+ | membership | Done | | +---------------------------------------------------+----------------------+-------------------------------------------------+ diff --git a/openupgrade_scripts/scripts/mass_mailing_themes/17.0.1.2/upgrade_analysis_work.txt b/openupgrade_scripts/scripts/mass_mailing_themes/17.0.1.2/upgrade_analysis_work.txt new file mode 100644 index 000000000000..4d856ad1701b --- /dev/null +++ b/openupgrade_scripts/scripts/mass_mailing_themes/17.0.1.2/upgrade_analysis_work.txt @@ -0,0 +1,23 @@ +---Models in module 'mass_mailing_themes'--- +# NOTHING TO DO + +---Fields in module 'mass_mailing_themes'--- +# NOTHING TO DO + +---XML records in module 'mass_mailing_themes'--- +NEW ir.attachment: mass_mailing_themes.s_default_image_block_image +NEW ir.attachment: mass_mailing_themes.s_tech_default_image +NEW ir.ui.view: mass_mailing_themes.theme_blogging_template +NEW ir.ui.view: mass_mailing_themes.theme_coffeebreak_template +NEW ir.ui.view: mass_mailing_themes.theme_coupon_template +NEW ir.ui.view: mass_mailing_themes.theme_event_template +NEW ir.ui.view: mass_mailing_themes.theme_magazine_template +NEW ir.ui.view: mass_mailing_themes.theme_promotion_template +NEW ir.ui.view: mass_mailing_themes.theme_roadshow1_template +NEW ir.ui.view: mass_mailing_themes.theme_roadshow2_template +NEW ir.ui.view: mass_mailing_themes.theme_training_template +DEL ir.ui.view: mass_mailing_themes.theme_bold_template +DEL ir.ui.view: mass_mailing_themes.theme_solar_template +DEL ir.ui.view: mass_mailing_themes.theme_tech_template +DEL ir.ui.view: mass_mailing_themes.theme_vip_template +# NOTHING TO DO: only mailing theme templates and related attachments were added/removed From 292aa7ddc20c3099e4ad156671955e029efa6a31 Mon Sep 17 00:00:00 2001 From: "r.perez" Date: Thu, 9 Jul 2026 12:38:01 -0400 Subject: [PATCH 58/71] [OU-ADD] project_list: Merged into project --- openupgrade_scripts/apriori.py | 2 ++ .../scripts/project/17.0.1.3/pre-migration.py | 18 ++++++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/openupgrade_scripts/apriori.py b/openupgrade_scripts/apriori.py index dc2f31e7c6f8..f357a8a2d66b 100644 --- a/openupgrade_scripts/apriori.py +++ b/openupgrade_scripts/apriori.py @@ -68,6 +68,8 @@ # OCA/product-attribute "product_catalog": "product", "product_catalog_sale": "sale", + # OCA/project + "project_list": "project", # OCA/purchase-workflow "purchase_discount": "purchase", # OCA/sale-promotion diff --git a/openupgrade_scripts/scripts/project/17.0.1.3/pre-migration.py b/openupgrade_scripts/scripts/project/17.0.1.3/pre-migration.py index f4811799d9ec..4afe8dc29437 100644 --- a/openupgrade_scripts/scripts/project/17.0.1.3/pre-migration.py +++ b/openupgrade_scripts/scripts/project/17.0.1.3/pre-migration.py @@ -71,11 +71,29 @@ def _set_default_analytic_plan_id(env): ) +def _delete_project_list_views(env): + """OCA module project_list got its functionality implemented in core + odoo. Its ir.actions.act_window.view records (reassigned to 'project' + module by merged_modules in base pre-migration) collide with v17 core's + new records on constraint act_window_view_unique_mode_per_action. + """ + openupgrade.delete_records_safely_by_xml_id( + env, + [ + "project.open_view_project_all_group_stage_kanban", + "project.open_view_project_all_group_stage_tree", + "project.open_view_project_all_kanban", + "project.open_view_project_all_tree", + ], + ) + + @openupgrade.migrate() def migrate(env, version): _rename_fields(env) _convert_project_task_state(env) _set_default_analytic_plan_id(env) + _delete_project_list_views(env) openupgrade.set_xml_ids_noupdate_value( env, "project", From a00c02ee100ba936eae0b6d633afaa5f4705c95e Mon Sep 17 00:00:00 2001 From: "Pedro M. Baeza" Date: Thu, 13 Aug 2026 12:13:31 +0200 Subject: [PATCH 59/71] [OU-IMP] stock: Create and pre-compute stock.move.line~quantity_product_uom With a lot of records, this improves a lot the performance. It also has a desired side-effect: if you come from a DB with inconsistent UOMs between the move lines and the product, this won't crash the migration and simply put the same quantity. The SQL computation performs the same as the equivalent Python code, even doing the rounding half-up to the UoM precision when required. TT61992 --- .../scripts/stock/17.0.1.1/pre-migration.py | 35 +++++++++++++++++++ .../stock/17.0.1.1/upgrade_analysis_work.txt | 4 ++- 2 files changed, 38 insertions(+), 1 deletion(-) diff --git a/openupgrade_scripts/scripts/stock/17.0.1.1/pre-migration.py b/openupgrade_scripts/scripts/stock/17.0.1.1/pre-migration.py index a51efed1fd6b..d56ea3fe137c 100644 --- a/openupgrade_scripts/scripts/stock/17.0.1.1/pre-migration.py +++ b/openupgrade_scripts/scripts/stock/17.0.1.1/pre-migration.py @@ -36,6 +36,40 @@ def fix_move_line_quantity(env): ) +def _prefill_sml_quantity_product_uom(env): + openupgrade.add_columns( + env, + [("stock.move.line", "quantity_product_uom", "float", None, "stock_move_line")], + ) + openupgrade.logged_query( + env.cr, + """ + UPDATE stock_move_line sml + SET quantity_product_uom = + CASE + WHEN sml.product_uom_id != pt.uom_id + AND uom_pt.category_id = uom_sml.category_id + THEN ROUND( + sml.quantity * uom_pt.factor / uom_sml.factor, + CASE + WHEN uom_pt.rounding = 1.0 THEN 0 + ELSE scale(uom_pt.rounding) + END + ) + ELSE sml.quantity + END + FROM product_product pp, + uom_uom uom_sml, + product_template pt, + uom_uom uom_pt + WHERE pp.id = sml.product_id + AND uom_sml.id = sml.product_uom_id + AND pt.id = pp.product_tmpl_id + AND uom_pt.id = pt.uom_id + """, + ) + + def prefill_picked(env): """ Pre-fill picked for stock moves and move lines to reduce ORM @@ -89,4 +123,5 @@ def migrate(env, version): openupgrade.rename_fields(env, _field_renames) openupgrade.copy_columns(env.cr, _column_copies) fix_move_line_quantity(env) + _prefill_sml_quantity_product_uom(env) prefill_picked(env) diff --git a/openupgrade_scripts/scripts/stock/17.0.1.1/upgrade_analysis_work.txt b/openupgrade_scripts/scripts/stock/17.0.1.1/upgrade_analysis_work.txt index f8d2f74c8f05..1f9369b854ad 100644 --- a/openupgrade_scripts/scripts/stock/17.0.1.1/upgrade_analysis_work.txt +++ b/openupgrade_scripts/scripts/stock/17.0.1.1/upgrade_analysis_work.txt @@ -46,9 +46,11 @@ stock / stock.move.line / quantity (float) : NEW ha stock / stock.move.line / picked (boolean) : NEW hasdefault: compute stock / stock.move.line / quant_id (many2one) : NEW relation: stock.quant -stock / stock.move.line / quantity_product_uom (float) : NEW isfunction: function, stored # NOTHING TO DO +stock / stock.move.line / quantity_product_uom (float) : NEW isfunction: function, stored +# DONE: pre-migration: Pre-created and filled by SQL + stock / stock.move.line / reserved_qty (float) : DEL stock / stock.move.line / reserved_uom_qty (float) : DEL required # DONE: added to quantity in pre-migration, recompute stock.move#quantity in post-migration From 036b3c5f3416d301fda5132faf14937b32527282 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Mart=C3=ADnez?= Date: Fri, 14 Aug 2026 14:59:04 +0200 Subject: [PATCH 60/71] [OU-IMP] point_of_sale: Set the appropriate value for point_of_sale.limited_product_count TT64083 --- .../17.0.1.0.1/post-migration.py | 32 +++++++++++++++++++ .../17.0.1.0.1/upgrade_analysis_work.txt | 1 + 2 files changed, 33 insertions(+) diff --git a/openupgrade_scripts/scripts/point_of_sale/17.0.1.0.1/post-migration.py b/openupgrade_scripts/scripts/point_of_sale/17.0.1.0.1/post-migration.py index f0e60fdbb1d3..c0691a2d8a2a 100644 --- a/openupgrade_scripts/scripts/point_of_sale/17.0.1.0.1/post-migration.py +++ b/openupgrade_scripts/scripts/point_of_sale/17.0.1.0.1/post-migration.py @@ -30,6 +30,37 @@ def fill_pos_order_shipping_date(env): ) +def fill_limited_product_count(env): + """In v16, you could use the limited_partners_loading and limited_products_amount + fields in pos.config to specify whether to perform a limited load and, if so, + the number of products to load; it is important to maintain this behavior in v17. + """ + env.cr.execute( + """ + SELECT CASE + WHEN EXISTS ( + SELECT 1 + FROM pos_config + WHERE limited_partners_loading + ) + THEN COALESCE( + MIN(limited_products_amount) FILTER ( + WHERE limited_partners_loading + AND limited_products_amount > 0 + ), + 0 + ) + ELSE 0 + END + FROM pos_config + """ + ) + limited_product_count = env.cr.fetchone()[0] + env["ir.config_parameter"].set_param( + "point_of_sale.limited_product_count", str(limited_product_count) + ) + + def product_template_convert_pos_categ_id_m2o_to_m2m(env): openupgrade.m2o_to_x2m( env.cr, @@ -44,6 +75,7 @@ def product_template_convert_pos_categ_id_m2o_to_m2m(env): def migrate(env, version): fill_account_move_pos_refunded_invoice_ids(env) fill_pos_order_shipping_date(env) + fill_limited_product_count(env) product_template_convert_pos_categ_id_m2o_to_m2m(env) openupgrade.load_data(env, "point_of_sale", "17.0.1.0.1/noupdate_changes.xml") openupgrade.delete_records_safely_by_xml_id( diff --git a/openupgrade_scripts/scripts/point_of_sale/17.0.1.0.1/upgrade_analysis_work.txt b/openupgrade_scripts/scripts/point_of_sale/17.0.1.0.1/upgrade_analysis_work.txt index ef4a5f2b5b31..76f1bdf0fa49 100644 --- a/openupgrade_scripts/scripts/point_of_sale/17.0.1.0.1/upgrade_analysis_work.txt +++ b/openupgrade_scripts/scripts/point_of_sale/17.0.1.0.1/upgrade_analysis_work.txt @@ -31,6 +31,7 @@ point_of_sale / pos.config / printer_ids (many2many) : previ # NOTHING TO DO point_of_sale / pos.config / limited_partners_amount (integer): DEL +# DONE: post-migration: Set the appropriate value for point_of_sale.limited_product_count to ensure consistency with the behavior of v16 point_of_sale / pos.config / limited_partners_loading (boolean): DEL point_of_sale / pos.config / limited_products_amount (integer): DEL point_of_sale / pos.config / limited_products_loading (boolean): DEL From b0f4297228e29d56d82aab0abc1a36e0242a1ea1 Mon Sep 17 00:00:00 2001 From: Holger Brunn Date: Wed, 26 Aug 2026 11:49:06 +0200 Subject: [PATCH 61/71] [IMP] website: activate default header for websites using deprecated header layout --- .../website/17.0.1.0/post-migration.py | 32 +++++++++++++++++++ .../17.0.1.0/upgrade_analysis_work.txt | 20 ++++++++++++ 2 files changed, 52 insertions(+) diff --git a/openupgrade_scripts/scripts/website/17.0.1.0/post-migration.py b/openupgrade_scripts/scripts/website/17.0.1.0/post-migration.py index 4244bc0a3292..e41262ea47ee 100644 --- a/openupgrade_scripts/scripts/website/17.0.1.0/post-migration.py +++ b/openupgrade_scripts/scripts/website/17.0.1.0/post-migration.py @@ -5,6 +5,38 @@ from openupgradelib import openupgrade +def set_default_header(env): + """ + For websites with a deprecated header layout, activate default header + """ + deprecated_layout_keys = ( + "website.template_header_slogan", + "website.template_header_contact", + "website.template_header_image", + "website.template_header_hamburger_full", + "website.template_header_centered_logo", + "website.template_header_magazine", + ) + for website in env["website"].search([]): + View = env["ir.ui.view"].with_context( + website_id=website.id, load_all_views=True + ) + view_id = View._get_view_id("website.layout") + view = View.browse(view_id) + deprecated_view = view._get_inheriting_views().filtered( + lambda x: x.key in deprecated_layout_keys + ) + if deprecated_view: + deprecated_view.active = False + View.with_context(active_test=False).search( + [ + ("key", "=", "website.template_header_default"), + ("website_id", "=", website.id), + ] + ).active = True + + @openupgrade.migrate() def migrate(env, version): openupgrade.load_data(env, "website", "17.0.1.0/noupdate_changes.xml") + set_default_header(env) diff --git a/openupgrade_scripts/scripts/website/17.0.1.0/upgrade_analysis_work.txt b/openupgrade_scripts/scripts/website/17.0.1.0/upgrade_analysis_work.txt index 1b40b74dbd83..98bb02e58bf0 100644 --- a/openupgrade_scripts/scripts/website/17.0.1.0/upgrade_analysis_work.txt +++ b/openupgrade_scripts/scripts/website/17.0.1.0/upgrade_analysis_work.txt @@ -348,20 +348,40 @@ DEL ir.ui.view: website.option_header_off_canvas_template_header_hamburger_full DEL ir.ui.view: website.option_header_off_canvas_template_header_sidebar DEL ir.ui.view: website.report_viewhierarchy_children DEL ir.ui.view: website.template_header_boxed_oe_structure_header_boxed_1 +# NOTHING TO DO + DEL ir.ui.view: website.template_header_centered_logo DEL ir.ui.view: website.template_header_contact +# DONE: activate default header in post-migration for websites using it + DEL ir.ui.view: website.template_header_contact_oe_structure_header_contact_1 DEL ir.ui.view: website.template_header_hamburger_align_center +# NOTHING TO DO + DEL ir.ui.view: website.template_header_hamburger_full +# DONE: activate default header in post-migration for websites using it + DEL ir.ui.view: website.template_header_hamburger_full_oe_structure_header_hamburger_full_1 DEL ir.ui.view: website.template_header_hamburger_oe_structure_header_hamburger_2 DEL ir.ui.view: website.template_header_hamburger_oe_structure_header_hamburger_3 +# NOTHING TO DO + DEL ir.ui.view: website.template_header_image +# DONE: activate default header in post-migration for websites using it + DEL ir.ui.view: website.template_header_image_oe_structure_header_image_1 +# NOTHING TO DO + DEL ir.ui.view: website.template_header_magazine +# DONE: activate default header in post-migration for websites using it + DEL ir.ui.view: website.template_header_magazine_oe_structure_header_magazine_1 DEL ir.ui.view: website.template_header_sidebar_oe_structure_header_sidebar_1 +# NOTHING TO DO + DEL ir.ui.view: website.template_header_slogan +# DONE: activate default header in post-migration for websites using it + DEL ir.ui.view: website.template_header_slogan_align_center DEL ir.ui.view: website.template_header_slogan_align_right DEL ir.ui.view: website.template_header_slogan_oe_structure_header_slogan_1 From 7532f7f5ebe74c312c9566e6b1af8622007e5a85 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miquel=20Ra=C3=AFch?= Date: Thu, 3 Sep 2026 12:31:26 +0200 Subject: [PATCH 62/71] [IMP] apriori: base_vat_optional_vies -> base_vat --- openupgrade_scripts/apriori.py | 2 ++ .../scripts/base_vat/17.0.1.0/post-migration.py | 3 ++- .../scripts/base_vat/17.0.1.0/pre-migration.py | 14 ++++++++++++++ 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/openupgrade_scripts/apriori.py b/openupgrade_scripts/apriori.py index f357a8a2d66b..c04f07727026 100644 --- a/openupgrade_scripts/apriori.py +++ b/openupgrade_scripts/apriori.py @@ -46,6 +46,8 @@ "website_sale_digital": "website_sale", "website_sale_loyalty_delivery": "website_sale_loyalty", "website_sale_stock_product_configurator": "website_sale_product_configurator", + # OCA/account-financial-tools + "base_vat_optional_vies": "base_vat", # OCA/account-invoicing "account_invoice_fiscal_position_update": "account", # OCA/e-commerce diff --git a/openupgrade_scripts/scripts/base_vat/17.0.1.0/post-migration.py b/openupgrade_scripts/scripts/base_vat/17.0.1.0/post-migration.py index f979b3c10d2a..8603e0a64859 100644 --- a/openupgrade_scripts/scripts/base_vat/17.0.1.0/post-migration.py +++ b/openupgrade_scripts/scripts/base_vat/17.0.1.0/post-migration.py @@ -34,7 +34,8 @@ def _partner_fill_vies_valid(env): ) IN (SELECT code FROM eu_countries) ) THEN TRUE ELSE FALSE - END; + END + WHERE vies_valid IS NULL; """, ) diff --git a/openupgrade_scripts/scripts/base_vat/17.0.1.0/pre-migration.py b/openupgrade_scripts/scripts/base_vat/17.0.1.0/pre-migration.py index 1e5a30183277..457ee66233ed 100644 --- a/openupgrade_scripts/scripts/base_vat/17.0.1.0/pre-migration.py +++ b/openupgrade_scripts/scripts/base_vat/17.0.1.0/pre-migration.py @@ -4,6 +4,20 @@ def _partner_create_vies_valid_column(env): + if openupgrade.column_exists(env.cr, "res_partner", "vies_passed"): + # coming from base_vat_optional_vies module + openupgrade.rename_fields( + env, + [ + ( + "res.partner", + "res_partner", + "vies_passed", + "vies_valid", + ), + ], + ) + return openupgrade.logged_query( env.cr, """ From 9600bc2a949608405aeef96ab98444f244f99998 Mon Sep 17 00:00:00 2001 From: "cristina.hidalgo" Date: Fri, 4 Sep 2026 13:53:48 +0200 Subject: [PATCH 63/71] [OU-IMP] website: reset unmodified COW templates to upstream Call cow_templates_mark_if_equal_to_upstream() in the pre-migration and cow_templates_replicate_upstream() in the end-migration. A website that enables an optional template through the Customize widget but never edits it keeps a COW copy; until now that copy was never resynced on migration, so it kept the origin arch_db and inherit_id. When a module migration re-targets which template the view inherits from, the stale copy points at the old parent and breaks rendering, as seen with website_sale_product_attribute_filter_category when website_sale moved a template between versions. cow_templates_replicate_upstream() also propagates inherit_id since OCA/openupgradelib#463. TT64160 --- .../scripts/website/17.0.1.0/end-migration.py | 9 +++++++++ .../scripts/website/17.0.1.0/pre-migration.py | 1 + 2 files changed, 10 insertions(+) create mode 100644 openupgrade_scripts/scripts/website/17.0.1.0/end-migration.py diff --git a/openupgrade_scripts/scripts/website/17.0.1.0/end-migration.py b/openupgrade_scripts/scripts/website/17.0.1.0/end-migration.py new file mode 100644 index 000000000000..416ab73ab55e --- /dev/null +++ b/openupgrade_scripts/scripts/website/17.0.1.0/end-migration.py @@ -0,0 +1,9 @@ +# Copyright 2026 Tecnativa - Cristina Hidalgo +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from openupgradelib import openupgrade + + +@openupgrade.migrate() +def migrate(env, version): + openupgrade.cow_templates_replicate_upstream(env.cr) diff --git a/openupgrade_scripts/scripts/website/17.0.1.0/pre-migration.py b/openupgrade_scripts/scripts/website/17.0.1.0/pre-migration.py index f6e4301ef447..6333940f6a8f 100644 --- a/openupgrade_scripts/scripts/website/17.0.1.0/pre-migration.py +++ b/openupgrade_scripts/scripts/website/17.0.1.0/pre-migration.py @@ -131,3 +131,4 @@ def migrate(env, version): ], False, ) + openupgrade.cow_templates_mark_if_equal_to_upstream(env.cr) From 19cf7ccf4afc36756ac0271cebfcf62472ea8713 Mon Sep 17 00:00:00 2001 From: Roy Le Date: Tue, 29 Sep 2026 16:40:06 +0700 Subject: [PATCH 64/71] [IMP] base: delete the technical records of the modules removed without a successor apriori.lost_modules lists the modules merged into the module they extended because they have no source any more. Before the merge, their technical noupdate records (rules, scheduled and server actions, views, menus, mail templates) are released so that the update deletes them, and the xml ids of the records of models that go with the module are detached. Business records stay. --- openupgrade_scripts/apriori.py | 9 +++ .../scripts/base/17.0.1.3/pre-migration.py | 59 +++++++++++++++++++ 2 files changed, 68 insertions(+) diff --git a/openupgrade_scripts/apriori.py b/openupgrade_scripts/apriori.py index 0557b919c331..c871bd3c7231 100644 --- a/openupgrade_scripts/apriori.py +++ b/openupgrade_scripts/apriori.py @@ -216,3 +216,12 @@ "repair.line": "stock.move", # OCA/... } + +# Modules of merged_modules that are not merged into anything: they are +# removed without a successor on our addons paths. The technical records they +# own (record rules, scheduled and server actions, views, menus, mail +# templates...) are deleted by the update even when they are noupdate, and the +# xml ids of records of models that go with them are detached: see +# release_records_of_lost_modules in the pre-migration of base. +lost_modules = [ +] diff --git a/openupgrade_scripts/scripts/base/17.0.1.3/pre-migration.py b/openupgrade_scripts/scripts/base/17.0.1.3/pre-migration.py index 5124c6be35ca..7a8873d6e182 100644 --- a/openupgrade_scripts/scripts/base/17.0.1.3/pre-migration.py +++ b/openupgrade_scripts/scripts/base/17.0.1.3/pre-migration.py @@ -401,6 +401,64 @@ def _reset_stale_noupdate(cr): ) +_TECHNICAL_MODELS = ( + "ir.actions.act_url", + "ir.actions.act_window", + "ir.actions.client", + "ir.actions.report", + "ir.actions.server", + "ir.actions.todo", + "ir.cron", + "ir.filters", + "ir.model.access", + "ir.property", + "ir.rule", + "ir.ui.menu", + "ir.ui.view", + "mail.template", + "website.menu", +) + + +def release_records_of_lost_modules(cr): + """A module that is removed without a successor is merged into the module + it extended (apriori.lost_modules), and the update of that module deletes + the records it no longer finds in the data files, except the noupdate + ones: release the technical records, so that they are deleted too, and + detach the xml ids of the records of models that go with the module (the + rows stay). Business records stay. + """ + from odoo.addons.openupgrade_scripts import apriori as _apriori + + lost_modules = tuple(getattr(_apriori, "lost_modules", [])) + if not lost_modules: + return + openupgrade.logged_query( + cr, + """ + UPDATE ir_model_data SET noupdate = FALSE + WHERE noupdate AND module IN %s AND model IN %s + """, + (lost_modules, _TECHNICAL_MODELS), + ) + openupgrade.logged_query( + cr, + """ + DELETE FROM ir_model_data d + WHERE d.module IN %s AND d.model IN ( + SELECT m.model + FROM ir_model m + JOIN ir_model_data md ON md.model = 'ir.model' + AND md.res_id = m.id AND md.module IN %s + WHERE NOT EXISTS ( + SELECT 1 FROM ir_model_data o + WHERE o.model = 'ir.model' AND o.res_id = m.id + AND o.module NOT IN %s)) + """, + (lost_modules,) * 3, + ) + + @openupgrade.migrate(use_env=False) def migrate(cr, version): """ @@ -414,6 +472,7 @@ def migrate(cr, version): "recommended to run the Odoo with --load=openupgrade_framework " "when migrating your database." ) + release_records_of_lost_modules(cr) openupgrade.update_module_names( cr, renamed_modules.items(), environment_namespec=True ) From 8adc8b62f48603b7d631c8c336a38fccffaf5722 Mon Sep 17 00:00:00 2001 From: Roy Le Date: Wed, 30 Sep 2026 11:31:56 +0700 Subject: [PATCH 65/71] [FIX] apriori: to_mail_notif_and_email is back in 17.0, to_uom_subscription is gone to_mail_notif_and_email was restored in tvtmaaddons 17.0 (d069776010): merged into mail it ended up uninstalled, and the users whose notifications go by email stopped getting them in their Odoo inbox. to_uom_subscription was removed from 17.0 (35c195ede0) without successor: merge it into uom as a lost module instead of leaving it 'to upgrade' for good. --- openupgrade_scripts/apriori.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/openupgrade_scripts/apriori.py b/openupgrade_scripts/apriori.py index c871bd3c7231..fe56008127d6 100644 --- a/openupgrade_scripts/apriori.py +++ b/openupgrade_scripts/apriori.py @@ -114,9 +114,10 @@ "to_hr_payroll_patch1": "to_hr_payroll", "to_hr_timesheet_payroll_patch1": "to_hr_timesheet_payroll", "to_location_warehouse": "viin_stock", - "to_mail_notif_and_email": "mail", "to_sale_loyalty_patch_1": "viin_loyalty", "to_stock_report_common": "viin_stock", + # removed from 17.0 (35c195ede0) without successor + "to_uom_subscription": "uom", "to_vietnam_bank_icons": "payment", "to_vietnamese_number2words": "base", "to_website_recaptcha": "google_recaptcha", @@ -224,4 +225,5 @@ # xml ids of records of models that go with them are detached: see # release_records_of_lost_modules in the pre-migration of base. lost_modules = [ + "to_uom_subscription", ] From 38b3e03b6bd14ce0d2ecf6ddfe51bb22fa7ebe75 Mon Sep 17 00:00:00 2001 From: Roy Le Date: Wed, 30 Sep 2026 12:11:33 +0700 Subject: [PATCH 66/71] [OU-FIX] payment: move the 9.0 payment_method table out of the way payment_icon becomes payment_method in 17.0. Databases that come from 9.0 may still have the table of 9.0 payment.method (renamed payment.token in 10.0, when their migration left the table behind), and the rename stops on 'relation payment_method already exists'. Move that table to its legacy name first. --- .../scripts/payment/17.0.2.0/pre-migration.py | 14 ++++++++++++++ .../payment/17.0.2.0/upgrade_analysis_work.txt | 4 ++++ 2 files changed, 18 insertions(+) diff --git a/openupgrade_scripts/scripts/payment/17.0.2.0/pre-migration.py b/openupgrade_scripts/scripts/payment/17.0.2.0/pre-migration.py index 0ac866e0a0e0..5f4483b5382c 100644 --- a/openupgrade_scripts/scripts/payment/17.0.2.0/pre-migration.py +++ b/openupgrade_scripts/scripts/payment/17.0.2.0/pre-migration.py @@ -187,9 +187,23 @@ ] +def _move_legacy_payment_method_table(env): + """9.0 payment.method (renamed payment.token in 10.0) left its table behind + on databases whose 10.0 migration did not rename it: move it out of the way + of payment_icon, which becomes payment_method now.""" + cr = env.cr + if openupgrade.column_exists( + cr, "payment_method", "acquirer_ref" + ) and openupgrade.table_exists(cr, "payment_icon"): + openupgrade.rename_tables( + cr, [("payment_method", openupgrade.get_legacy_name("payment_method"))] + ) + + @openupgrade.migrate() def migrate(env, version): openupgrade.rename_models(env.cr, _model_renames) + _move_legacy_payment_method_table(env) openupgrade.rename_tables(env.cr, _table_renames) openupgrade.rename_columns(env.cr, _column_renames) openupgrade.rename_fields(env, _field_renames) diff --git a/openupgrade_scripts/scripts/payment/17.0.2.0/upgrade_analysis_work.txt b/openupgrade_scripts/scripts/payment/17.0.2.0/upgrade_analysis_work.txt index 6fa4daa4de26..b11b667114f9 100644 --- a/openupgrade_scripts/scripts/payment/17.0.2.0/upgrade_analysis_work.txt +++ b/openupgrade_scripts/scripts/payment/17.0.2.0/upgrade_analysis_work.txt @@ -350,3 +350,7 @@ NEW payment.method: payment.payment_method_zalopay (noupdate) NEW payment.method: payment.payment_method_zip (noupdate) NEW payment.provider: payment.payment_provider_xendit (noupdate) # NOTHING TO DO: new payment methods / provider + +# Not in the analysis: the table of 9.0 payment.method (renamed payment.token in 10.0) is still there +# on databases whose 10.0 migration did not rename it, and has the name payment_icon gets now. +# DONE: pre-migration: moved to its legacy name first From 4e9213e6006648f1f18ae4c10abd3470ea536e94 Mon Sep 17 00:00:00 2001 From: Roy Le Date: Wed, 30 Sep 2026 12:21:33 +0700 Subject: [PATCH 67/71] [OU-FIX] hr: keep a private address typed as the contact name A private address is often entered as a contact whose name is the address ("50B, Chau Long street, Ba Dinh, Hanoi") with no address field filled. The transfer to the new private fields of the employee copies the address fields only, and the end-migration merges that contact into the work contact, which keeps its own name: the address was lost. Put it in private_street when no private address field got a value. --- .../scripts/hr/17.0.1.1/post-migration.py | 22 +++++++++++++++++++ .../hr/17.0.1.1/upgrade_analysis_work.txt | 2 ++ 2 files changed, 24 insertions(+) diff --git a/openupgrade_scripts/scripts/hr/17.0.1.1/post-migration.py b/openupgrade_scripts/scripts/hr/17.0.1.1/post-migration.py index 4104e388750c..b5c27953dfef 100644 --- a/openupgrade_scripts/scripts/hr/17.0.1.1/post-migration.py +++ b/openupgrade_scripts/scripts/hr/17.0.1.1/post-migration.py @@ -101,8 +101,30 @@ def _partner_values(table_alias, partner_field): openupgrade.logged_query(cr, query) +def _transfer_private_address_typed_as_name(env): + """A private address is often entered as a contact whose name is the + address itself ("12 Main Street, Springfield"), with no address field + filled. Nothing above picks it up, and the end-migration merges that + contact into the work contact, which keeps its own name: the address is + lost. Keep it as the private street of the employee.""" + openupgrade.logged_query( + env.cr, + """ + UPDATE hr_employee he + SET private_street = rp.name + FROM res_partner rp + WHERE he.address_home_id = rp.id + AND he.private_street IS NULL AND he.private_street2 IS NULL + AND he.private_city IS NULL AND he.private_zip IS NULL + AND rp.name IS NOT NULL AND rp.name != he.name + AND NOT COALESCE(rp.is_company, FALSE) + """, + ) + + @openupgrade.migrate() def migrate(env, version): _transfer_employee_private_data(env) + _transfer_private_address_typed_as_name(env) openupgrade.load_data(env, "hr", "17.0.1.1/noupdate_changes.xml") openupgrade.delete_records_safely_by_xml_id(env, _deleted_xml_records) diff --git a/openupgrade_scripts/scripts/hr/17.0.1.1/upgrade_analysis_work.txt b/openupgrade_scripts/scripts/hr/17.0.1.1/upgrade_analysis_work.txt index 8ac9ae5cf6dd..6dfda3d80788 100644 --- a/openupgrade_scripts/scripts/hr/17.0.1.1/upgrade_analysis_work.txt +++ b/openupgrade_scripts/scripts/hr/17.0.1.1/upgrade_analysis_work.txt @@ -67,6 +67,8 @@ hr / hr.employee / private_street (char) : NEW hr / hr.employee / private_street2 (char) : NEW hr / hr.employee / private_zip (char) : NEW # DONE: post-migration: fill values from address_home_id to the employee fields, and anonymize the information on the res.partner record +# a private address entered as the name of a contact with no address field goes to private_street +# (the end-migration merges that contact into the work contact, which keeps its own name) hr / hr.employee / rating_ids (one2many) : NEW relation: rating.rating hr / hr.job / message_main_attachment_id (many2one): DEL relation: ir.attachment From 4f3398c78cc123cfc2f3f35a0e9a4c769352653e Mon Sep 17 00:00:00 2001 From: Roy Le Date: Wed, 30 Sep 2026 12:33:28 +0700 Subject: [PATCH 68/71] [FIX] openupgrade_framework: delete the archived children of a removed view The end of an update deletes the views its module no longer ships under the module uninstall flag, and the core cascades to the children through inherit_children_ids, which leaves out the archived ones (e.g. an option of the website editor turned off). Their foreign key then keeps the parent from being deleted: 'violates foreign key constraint ir_ui_view_inherit_id_fkey' (website_sale.payment_footer at 17.0). Same fix as in the 10.0-13.0 forks. --- .../odoo/addons/base/models/ir_ui_view.py | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/openupgrade_framework/odoo_patch/odoo/addons/base/models/ir_ui_view.py b/openupgrade_framework/odoo_patch/odoo/addons/base/models/ir_ui_view.py index 402362253dbb..3f369bd43b67 100644 --- a/openupgrade_framework/odoo_patch/odoo/addons/base/models/ir_ui_view.py +++ b/openupgrade_framework/odoo_patch/odoo/addons/base/models/ir_ui_view.py @@ -112,3 +112,26 @@ def _inverse_arch(self): View._check_field_paths = _check_field_paths _inverse_arch._original_method = View._inverse_arch View._inverse_arch = _inverse_arch + + +def unlink(self): + """Remove the archived children of a view deleted with its module too. + + The cascade of the core (under the module uninstall flag, which the end of + an update sets) goes through inherit_children_ids, which leaves out the + archived views (e.g. an option of the website editor turned off): their + foreign key then keeps the parent from being deleted, and the log shows + 'violates foreign key constraint ir_ui_view_inherit_id_fkey'. + """ + if self.env.context.get("_force_unlink"): + archived = ( + self.with_context(active_test=False).inherit_children_ids + - self.inherit_children_ids + ) + if archived: + archived.unlink() + return unlink._original_method(self) + + +unlink._original_method = View.unlink +View.unlink = unlink From e9634986bf46e6011d6d72740b797e5151b42b72 Mon Sep 17 00:00:00 2001 From: Roy Le Date: Wed, 30 Sep 2026 12:33:28 +0700 Subject: [PATCH 69/71] [OU-FIX] hr_attendance: drop the links the target group has before the merges rename_xmlids(allow_merge=True) merges group_hr_attendance and group_hr_attendance_kiosk into group_hr_attendance_own_reader in SQL: one UPDATE per many2many table moves the links of the old group, the unique pair stops it when a user is in both groups ('duplicate key value violates unique constraint res_groups_users_rel_gid_uid_key'), and openupgradelib then deletes the links left behind: the other members of the old group lost the access. Drop the links the target already has first. --- .../hr_attendance/17.0.2.0/post-migration.py | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/openupgrade_scripts/scripts/hr_attendance/17.0.2.0/post-migration.py b/openupgrade_scripts/scripts/hr_attendance/17.0.2.0/post-migration.py index db971000e6b9..f1b3a407769d 100644 --- a/openupgrade_scripts/scripts/hr_attendance/17.0.2.0/post-migration.py +++ b/openupgrade_scripts/scripts/hr_attendance/17.0.2.0/post-migration.py @@ -55,6 +55,47 @@ def fill_hr_attendance_overtime_hours(env): attendances._compute_overtime_hours() +def _drop_links_the_target_group_has(env, old_xmlid, new_xmlid): + """rename_xmlids(allow_merge=True) merges the groups in SQL: one UPDATE per + many2many table (members, implied groups...) moves the links of the old group + to the new one, and the unique pair of the table stops it when both groups + have the same user, which happens with these two groups. openupgradelib then + deletes the links of the old group left behind: its other members lost the + access. Drop the links the new group already has, the UPDATE then goes through. + """ + old = env.ref(old_xmlid, raise_if_not_found=False) + new = env.ref(new_xmlid, raise_if_not_found=False) + if not old or not new or old == new: + return + env.cr.execute( + """SELECT cl.relname, a.attname + FROM pg_constraint c + JOIN pg_class cl ON cl.oid = c.conrelid + JOIN pg_attribute a ON a.attrelid = c.conrelid AND a.attnum = c.conkey[1] + WHERE c.contype = 'f' AND c.confrelid = 'res_groups'::regclass + AND array_length(c.conkey, 1) = 1 + AND (SELECT count(*) FROM pg_attribute a2 + WHERE a2.attrelid = c.conrelid AND a2.attnum > 0 + AND NOT a2.attisdropped) = 2""" + ) + for table, column in env.cr.fetchall(): + env.cr.execute( + """SELECT attname FROM pg_attribute + WHERE attrelid = %s::regclass AND attnum > 0 + AND NOT attisdropped AND attname != %s""", + ('"%s"' % table, column), + ) + other = env.cr.fetchone()[0] + openupgrade.logged_query( + env.cr, + f"""DELETE FROM "{table}" t + WHERE t."{column}" = %(old)s AND EXISTS ( + SELECT 1 FROM "{table}" t2 + WHERE t2."{column}" = %(new)s AND t2."{other}" = t."{other}")""", + {"old": old.id, "new": new.id}, + ) + + def hr_attendance_menus(env): group_hr_attendance = env.ref("hr_attendance.group_hr_attendance") group_hr_attendance_kiosk = env.ref("hr_attendance.group_hr_attendance_kiosk") @@ -67,6 +108,11 @@ def hr_attendance_menus(env): ] } ) + _drop_links_the_target_group_has( + env, + "hr_attendance.group_hr_attendance", + "hr_attendance.group_hr_attendance_own_reader", + ) openupgrade.rename_xmlids( env.cr, [ @@ -85,6 +131,11 @@ def hr_attendance_menus(env): ] } ) + _drop_links_the_target_group_has( + env, + "hr_attendance.group_hr_attendance_kiosk", + "hr_attendance.group_hr_attendance_own_reader", + ) openupgrade.rename_xmlids( env.cr, [ From 41b8c0f653f4345942d4268e4c9926494043865d Mon Sep 17 00:00:00 2001 From: Roy Le Date: Wed, 30 Sep 2026 13:37:26 +0700 Subject: [PATCH 70/71] [OU-FIX] payment_custom: a payment method of its own for each custom provider Up to 16.0 the checkout lists the providers, and a company can offer several custom ones (a bank transfer, cash at the counter, a phone card), each under its own name with its own payment instructions. From 17.0 the checkout lists payment methods with one provider each: all set on the wire transfer method, the custom providers of a company showed as one option, with the payment instructions of only one of them. The provider of payment.payment_provider_transfer (or else the first one) keeps the wire transfer method; each other custom provider gets a copy of it named as the provider was on the checkout. The copies keep the code 'wire_transfer', so enabling the provider again activates its method. --- .../payment_custom/17.0.2.0/post-migration.py | 66 +++++++++++++++++++ .../17.0.2.0/upgrade_analysis_work.txt | 6 +- 2 files changed, 71 insertions(+), 1 deletion(-) diff --git a/openupgrade_scripts/scripts/payment_custom/17.0.2.0/post-migration.py b/openupgrade_scripts/scripts/payment_custom/17.0.2.0/post-migration.py index 58807a8d3311..98504fe4d2c6 100644 --- a/openupgrade_scripts/scripts/payment_custom/17.0.2.0/post-migration.py +++ b/openupgrade_scripts/scripts/payment_custom/17.0.2.0/post-migration.py @@ -1,11 +1,76 @@ # Copyright 2024 Viindoo Technology Joint Stock Company (Viindoo) # Copyright 2024 Le Filament (https://le-filament.com) # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). +import logging from openupgradelib import openupgrade from odoo import Command +_logger = logging.getLogger(__name__) + + +def _checkout_lang(env, company): + """The language the buyers of the company see the checkout in. + + The default language of its first website (in SQL: payment_custom is + migrated before the website module is loaded), else the company's one. + """ + if openupgrade.table_exists(env.cr, "website"): + env.cr.execute( + """SELECT l.code FROM website w + JOIN res_lang l ON l.id = w.default_lang_id + WHERE w.company_id = %s ORDER BY w.sequence, w.id LIMIT 1""", + (company.id,), + ) + row = env.cr.fetchone() + if row: + return row[0] + return company.partner_id.lang or env.lang or "en_US" + + +def _split_custom_providers_methods(env): + """Give each custom provider of a company but one a payment method of its own. + + Up to 16.0 the checkout lists the providers: a company can offer several + custom ones (a bank transfer, cash at the counter, a phone card...), each + under its own name with its own payment instructions. From 17.0 the checkout + lists payment methods, each with one of its providers: on the single wire + transfer method, the custom providers of a company show as one option, with + the instructions of one of them. The provider of the module data (or else the + first one) keeps the wire transfer method; each other one gets a copy of it, + named as the provider was on the checkout. The copies keep the code + 'wire_transfer': enabling the provider again activates its method. + """ + wire_transfer = env.ref("payment_custom.payment_method_wire_transfer") + standard = env.ref("payment.payment_provider_transfer", raise_if_not_found=False) + providers = ( + env["payment.provider"] + .with_context(active_test=False) + .search([("code", "=", "custom")], order="sequence, id") + ) + for company in providers.company_id: + company_providers = providers.filtered_domain([("company_id", "=", company.id)]) + if len(company_providers) < 2: + continue + keep = standard if standard in company_providers else company_providers[:1] + lang = _checkout_lang(env, company) + for provider in company_providers - keep: + method = wire_transfer.copy( + { + "name": provider.with_context(lang=lang).name, + "active": True, + "provider_ids": [Command.set(provider.ids)], + } + ) + provider.payment_method_ids = [Command.set(method.ids)] + _logger.info( + "custom payment provider %s: payment method %s (%s) of its own", + provider.id, + method.id, + method.name, + ) + @openupgrade.migrate() def migrate(env, version): @@ -18,3 +83,4 @@ def migrate(env, version): ], } ) + _split_custom_providers_methods(env) diff --git a/openupgrade_scripts/scripts/payment_custom/17.0.2.0/upgrade_analysis_work.txt b/openupgrade_scripts/scripts/payment_custom/17.0.2.0/upgrade_analysis_work.txt index 48c0019d97c3..8d1c602558fe 100644 --- a/openupgrade_scripts/scripts/payment_custom/17.0.2.0/upgrade_analysis_work.txt +++ b/openupgrade_scripts/scripts/payment_custom/17.0.2.0/upgrade_analysis_work.txt @@ -6,4 +6,8 @@ NEW ir.ui.view: payment_custom.token_form # NOTHING TO DO: new views NEW payment.method: payment_custom.payment_method_wire_transfer (noupdate) -# NOTHING TO DO: new payment method +# DONE: post-migration: set as the payment method of every custom provider. The checkout now lists payment +# methods (one provider each): when a company has several custom providers (bank transfer, cash, phone card...), +# the provider of payment.payment_provider_transfer (or else the first one) keeps this method and every other +# one gets a copy of it named as the provider (code 'wire_transfer', so enabling the provider activates it), +# else they would show as a single option with the instructions of only one of them. From b9b40dbde5903d0693d899bdd813c20f61799c9c Mon Sep 17 00:00:00 2001 From: Roy Le Date: Thu, 1 Oct 2026 17:34:58 +0700 Subject: [PATCH 71/71] [FIX] openupgrade_framework: release the savepoint of each obsolete record The unlink patch opened a savepoint for every obsolete record deleted by _process_end and never released it (its name was even the same for all, str(uuid4) instead of str(uuid4())). Each open savepoint that deletes keeps a transactionid lock until the end of the update: a large update holds thousands of them, and with another update running on the cluster the lock table ran out ("out of shared memory", hop 17.0 of a real database). Release the savepoint after the delete, and after the rollback when it fails: 200 deletions now hold 1 lock instead of 201. --- openupgrade_framework/odoo_patch/odoo/models.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/openupgrade_framework/odoo_patch/odoo/models.py b/openupgrade_framework/odoo_patch/odoo/models.py index 12ec270e2f4c..4fd0eafa9a31 100644 --- a/openupgrade_framework/odoo_patch/odoo/models.py +++ b/openupgrade_framework/odoo_patch/odoo/models.py @@ -19,16 +19,26 @@ def unlink(self): """ if not self.env.context.get(MODULE_UNINSTALL_FLAG): return BaseModel.unlink._original_method(self) - savepoint = str(uuid4) + savepoint = str(uuid4()) try: self.env.cr.execute( # pylint: disable=sql-injection 'SAVEPOINT "%s"' % savepoint ) - return BaseModel.unlink._original_method(self) + result = BaseModel.unlink._original_method(self) + # release it: a savepoint left open per deleted record keeps a + # transactionid lock until the end of the update, enough to exhaust + # the lock table of the cluster on a large update + self.env.cr.execute( # pylint: disable=sql-injection + 'RELEASE SAVEPOINT "%s"' % savepoint + ) + return result except Exception as e: self.env.cr.execute( # pylint: disable=sql-injection 'ROLLBACK TO SAVEPOINT "%s"' % savepoint ) + self.env.cr.execute( # pylint: disable=sql-injection + 'RELEASE SAVEPOINT "%s"' % savepoint + ) _logger.warning( "Could not delete obsolete record with ids %s of model %s: %s", self.ids,