Odoo18-Base/addons/l10n_de/migrations/1.1/post-migrate_update_amls.py
2025-01-06 10:57:38 +07:00

40 lines
1.5 KiB
Python

# Part of Odoo. See LICENSE file for full copyright and licensing details
from odoo import api, SUPERUSER_ID
def migrate(cr, version):
# The tax report line 68 has been removed as it does not appear in tax report anymore.
# But, it was referenced in the account.sales.report
# So, we update amls of this line only, to make this report consistent.
env = api.Environment(cr, SUPERUSER_ID, {})
country = env['res.country'].search([('code', '=', 'DE')], limit=1)
tags_68 = env['account.account.tag']._get_tax_tags('68', country.id)
tags_60 = env['account.account.tag']._get_tax_tags('60', country.id)
if tags_68.filtered(lambda tag: tag.tax_negate):
cr.execute(
"""
UPDATE account_account_tag_account_move_line_rel
SET account_account_tag_id = %s
WHERE account_account_tag_id IN %s;
""",
[
tags_60.filtered(lambda tag: tag.tax_negate)[0].id,
tuple(tags_68.filtered(lambda tag: tag.tax_negate).ids)
]
)
if tags_68.filtered(lambda tag: not tag.tax_negate):
cr.execute(
"""
UPDATE account_account_tag_account_move_line_rel
SET account_account_tag_id = %s
WHERE account_account_tag_id IN %s;
""",
[
tags_60.filtered(lambda tag: not tag.tax_negate)[0].id,
tuple(tags_68.filtered(lambda tag: not tag.tax_negate).ids)
]
)