From 1aff36684d93dcaae6fabf976781604bf8a1ae22 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Honor=C3=A9?= Date: Thu, 29 Jul 2021 08:55:18 +0200 Subject: [PATCH] [13.0][FIX] intrastat_product: - Fix migration script who deal with account_invoice and account_invoice_line tables who don't exist in v13.0. Add check to ensure these tables exist really (ex: project from previous version migrated to v13.0) before applying the script. --- .../migrations/13.0.1.0.3/post-migration.py | 47 ++++++++++--------- 1 file changed, 25 insertions(+), 22 deletions(-) diff --git a/intrastat_product/migrations/13.0.1.0.3/post-migration.py b/intrastat_product/migrations/13.0.1.0.3/post-migration.py index b9347a7..1be5751 100644 --- a/intrastat_product/migrations/13.0.1.0.3/post-migration.py +++ b/intrastat_product/migrations/13.0.1.0.3/post-migration.py @@ -29,28 +29,31 @@ def map_intrastat_product_declaration_month(env): def update_invoice_relation_fields(env): - openupgrade.logged_query( - env.cr, - """ - UPDATE account_move am - SET (intrastat_transaction_id, intrastat_transport_id, - src_dest_country_id, intrastat_country, src_dest_region_id - ) = (ai.intrastat_transaction_id, - ai.intrastat_transport_id, ai.src_dest_country_id, - ai.intrastat_country, ai.src_dest_region_id) - FROM account_invoice ai - WHERE am.old_invoice_id = ai.id""", - ) - openupgrade.logged_query( - env.cr, - """ - UPDATE intrastat_product_computation_line ipcl - SET invoice_line_id = aml.id - FROM account_invoice_line ail - JOIN account_move_line aml ON aml.old_invoice_line_id = ail.id - WHERE ipcl.%(old_line_id)s = ail.id""" - % {"old_line_id": openupgrade.get_legacy_name("invoice_line_id")}, - ) + # In a Odoo project started from v13.0, these invoices tables doesn't exist! + if openupgrade.table_exists(env.cr, "account_invoice"): + openupgrade.logged_query( + env.cr, + """ + UPDATE account_move am + SET (intrastat_transaction_id, intrastat_transport_id, + src_dest_country_id, intrastat_country, src_dest_region_id + ) = (ai.intrastat_transaction_id, + ai.intrastat_transport_id, ai.src_dest_country_id, + ai.intrastat_country, ai.src_dest_region_id) + FROM account_invoice ai + WHERE am.old_invoice_id = ai.id""", + ) + if openupgrade.table_exists(env.cr, "account_invoice_line"): + openupgrade.logged_query( + env.cr, + """ + UPDATE intrastat_product_computation_line ipcl + SET invoice_line_id = aml.id + FROM account_invoice_line ail + JOIN account_move_line aml ON aml.old_invoice_line_id = ail.id + WHERE ipcl.%(old_line_id)s = ail.id""" + % {"old_line_id": openupgrade.get_legacy_name("invoice_line_id")}, + ) @openupgrade.migrate()