41 lines
1.6 KiB
Python
41 lines
1.6 KiB
Python
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
from odoo import api, SUPERUSER_ID
|
|
|
|
|
|
def migrate(cr, version):
|
|
env = api.Environment(cr, SUPERUSER_ID, {})
|
|
|
|
# Load the new tax groups if it doesn't exist yet
|
|
ChartTemplate = env["account.chart.template"]
|
|
companies = env['res.company'].search([('chart_template', '=', 'id')], order="parent_path")
|
|
|
|
new_tax_groups = ["l10n_id_tax_group_non_luxury_goods", "l10n_id_tax_group_0", "l10n_id_tax_group_exempt"]
|
|
|
|
tax_group_data = {
|
|
xmlid: data
|
|
for xmlid, data in ChartTemplate._get_account_tax_group('id').items()
|
|
if xmlid in new_tax_groups
|
|
}
|
|
|
|
# For taxes: tax_ST1 and tax_PT1 which are non-luxury tax, if the amount and tax group
|
|
# has not been changed yet by user, we update the tax group and description
|
|
for company in companies:
|
|
ChartTemplate.with_company(company)._load_data({
|
|
"account.tax.group": tax_group_data,
|
|
})
|
|
tax_ST1 = ChartTemplate.with_company(company).ref("tax_ST1", raise_if_not_found=False)
|
|
tax_PT1 = ChartTemplate.with_company(company).ref("tax_PT1", raise_if_not_found=False)
|
|
|
|
old_group = ChartTemplate.with_company(company).ref("default_tax_group", raise_if_not_found=False)
|
|
new_group = ChartTemplate.with_company(company).ref("l10n_id_tax_group_non_luxury_goods")
|
|
|
|
if not old_group:
|
|
continue
|
|
|
|
for tax in [tax_ST1, tax_PT1]:
|
|
if tax and tax.amount == 11.0 and tax.tax_group_id == old_group:
|
|
tax.write({
|
|
"tax_group_id": new_group.id,
|
|
"description": "12%",
|
|
})
|