odoo18/addons/l10n_dk_nemhandel/__init__.py

34 lines
1.2 KiB
Python

from odoo.tools.sql import column_exists, create_column
from . import models
from . import tools
from . import wizard
def _pre_init_nemhandel(env):
"""
Force the creation of the columns to avoid having the ORM compute on potentially millions of records.
Mimic the compute method of nemhandel_identifier_type and nemhandel_identifier_value to fill these columns.
"""
if not column_exists(env.cr, "account_move", "nemhandel_move_state"):
create_column(env.cr, "account_move", "nemhandel_move_state", "varchar")
create_column(env.cr, "res_partner", "nemhandel_identifier_type", "varchar")
create_column(env.cr, "res_partner", "nemhandel_identifier_value", "varchar")
query = """
WITH _dk AS (
SELECT p.id
FROM res_partner p
LEFT JOIN res_country c
ON c.id = p.country_id
WHERE p.vat ILIKE 'DK%'
OR c.code = 'DK'
)
UPDATE res_partner p
SET nemhandel_identifier_type = '0184',
nemhandel_identifier_value = p.company_registry
FROM _dk
WHERE _dk.id = p.id
"""
env.cr.execute(query)