Skip to content

Commit

Permalink
[MIG] hs_code_id company_dependent=True to False
Browse files Browse the repository at this point in the history
Migration script provided for product.template and product.category
Fixes bug #126
  • Loading branch information
alexis-via committed Dec 16, 2021
1 parent 5802ad0 commit f9ca08e
Show file tree
Hide file tree
Showing 4 changed files with 52 additions and 3 deletions.
2 changes: 1 addition & 1 deletion product_harmonized_system/__manifest__.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@

{
"name": "Product Harmonized System Codes",
"version": "14.0.1.0.1",
"version": "14.0.2.0.0",
"category": "Reporting",
"license": "AGPL-3",
"summary": "Base module for Product Import/Export reports",
Expand Down
45 changes: 45 additions & 0 deletions product_harmonized_system/migrations/14.0.2.0.0/post-migration.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
# Copyright 2021 Akretion France (http://www.akretion.com/)
# @author: Alexis de Lattre <alexis.delattre@akretion.com>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).

from odoo import SUPERUSER_ID, api


def migrate(cr, version):
if not version:
return

with api.Environment.manage():
env = api.Environment(cr, SUPERUSER_ID, {})
pc_field_id = env.ref(
"product_harmonized_system.field_product_category__hs_code_id"
).id
cr.execute(
"""
UPDATE product_category pc
SET hs_code_id=SUBSTRING(ip.value_reference, 9, 99)::int
FROM ir_property ip
WHERE ip.res_id like 'product.category,%%' AND
SUBSTRING(ip.res_id, 18, 99)::int=pc.id AND
ip.name='hs_code_id' AND
ip.value_reference IS NOT null AND
ip.fields_id=%s
""",
(pc_field_id,),
)
pt_field_id = env.ref(
"product_harmonized_system.field_product_template__hs_code_id"
).id
cr.execute(
"""
UPDATE product_template pt
SET hs_code_id=SUBSTRING(ip.value_reference, 9, 99)::int
FROM ir_property ip
WHERE ip.res_id like 'product.template,%%' AND
SUBSTRING(ip.res_id, 18, 99)::int=pt.id AND
ip.name='hs_code_id' AND
ip.value_reference IS NOT null AND
ip.fields_id=%s
""",
(pt_field_id,),
)
4 changes: 3 additions & 1 deletion product_harmonized_system/models/product_category.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,9 @@ class ProductCategory(models.Model):
hs_code_id = fields.Many2one(
"hs.code",
string="H.S. Code",
company_dependent=True,
# company_dependent updated from True to False in 14.0.2.0.0
# migration scripts provided
company_dependent=False,
ondelete="restrict",
help="Harmonised System Code. If this code is not "
"set on the product itself, it will be read here, on the "
Expand Down
4 changes: 3 additions & 1 deletion product_harmonized_system/models/product_template.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,9 @@ class ProductTemplate(models.Model):
hs_code_id = fields.Many2one(
"hs.code",
string="H.S. Code",
company_dependent=True,
# company_dependent updated from True to False in 14.0.2.0.0
# migration scripts provided
company_dependent=False,
ondelete="restrict",
help="Harmonised System Code. Nomenclature is "
"available from the World Customs Organisation, see "
Expand Down

0 comments on commit f9ca08e

Please sign in to comment.