changes
This commit is contained in:
@@ -1,15 +1,54 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Copyright 2024-2025 Nexa Systems Inc.
|
||||
# Copyright 2024-2026 Nexa Systems Inc.
|
||||
# License OPL-1 (Odoo Proprietary License v1.0)
|
||||
# Part of the Fusion Claim Assistant product family.
|
||||
|
||||
import logging
|
||||
|
||||
from . import models
|
||||
from . import wizard
|
||||
|
||||
_logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
def _load_adp_device_codes(env):
|
||||
"""
|
||||
Post-init hook to load ADP Mobility Manual device codes.
|
||||
Called on module install AND upgrade.
|
||||
"""Post-init hook: load device codes then link products to them.
|
||||
|
||||
Called on module install AND upgrade. Each step is idempotent.
|
||||
"""
|
||||
env['fusion.adp.device.code']._load_packaged_device_codes()
|
||||
_link_products_to_device_codes(env)
|
||||
|
||||
|
||||
def _link_products_to_device_codes(env):
|
||||
"""Populate x_fc_adp_device_code_id and x_fc_is_adp_product for
|
||||
existing products that already have a device code string set.
|
||||
|
||||
Uses raw SQL for speed since this may touch hundreds of rows.
|
||||
"""
|
||||
cr = env.cr
|
||||
|
||||
cr.execute("""
|
||||
UPDATE product_template pt
|
||||
SET x_fc_adp_device_code_id = adc.id,
|
||||
x_fc_adp_price = adc.adp_price,
|
||||
x_fc_is_adp_product = TRUE
|
||||
FROM fusion_adp_device_code adc
|
||||
WHERE pt.x_fc_adp_device_code IS NOT NULL
|
||||
AND pt.x_fc_adp_device_code != ''
|
||||
AND adc.device_code = pt.x_fc_adp_device_code
|
||||
AND adc.active = TRUE
|
||||
AND pt.x_fc_adp_device_code_id IS NULL
|
||||
""")
|
||||
linked = cr.rowcount
|
||||
_logger.info("ADP migration: linked %d products to device code records", linked)
|
||||
|
||||
cr.execute("""
|
||||
UPDATE product_template
|
||||
SET x_fc_is_adp_product = TRUE
|
||||
WHERE x_fc_adp_device_code IS NOT NULL
|
||||
AND x_fc_adp_device_code != ''
|
||||
AND (x_fc_is_adp_product IS NULL OR x_fc_is_adp_product = FALSE)
|
||||
""")
|
||||
toggled = cr.rowcount
|
||||
_logger.info("ADP migration: toggled x_fc_is_adp_product on %d products", toggled)
|
||||
|
||||
Reference in New Issue
Block a user