You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

67 lines
2.2 KiB

  1. # Copyright 2018 Eficent Business and IT Consulting Services, S.L.
  2. # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
  3. from openupgradelib import openupgrade
  4. from psycopg2.extensions import AsIs
  5. def fill_res_partner_industry(cr):
  6. cr.execute(
  7. """
  8. INSERT INTO res_partner_industry (name, active, create_uid,
  9. create_date, write_uid, write_date, %s)
  10. SELECT name, TRUE as active, create_uid, create_date, write_uid,
  11. write_date, id
  12. FROM res_partner_sector
  13. """, (AsIs(openupgrade.get_legacy_name('old_sector_id')), ),
  14. )
  15. # corrected parent_id here:
  16. cr.execute(
  17. """
  18. UPDATE res_partner_industry rpi
  19. SET parent_id = rpi2.id
  20. FROM res_partner_sector rps
  21. INNER JOIN res_partner_industry rpi2 ON rps.parent_id = rpi2.%s
  22. WHERE rpi.%s = rps.id
  23. """, (
  24. AsIs(openupgrade.get_legacy_name('old_sector_id')),
  25. AsIs(openupgrade.get_legacy_name('old_sector_id')),
  26. ),
  27. )
  28. def update_res_partner_industry(cr):
  29. cr.execute(
  30. """
  31. UPDATE res_partner rp
  32. SET industry_id = rpi.id
  33. FROM res_partner_industry rpi
  34. WHERE rp.%s IS NOT NULL AND rp.%s = rpi.%s
  35. """, (
  36. AsIs(openupgrade.get_legacy_name('sector_id')),
  37. AsIs(openupgrade.get_legacy_name('sector_id')),
  38. AsIs(openupgrade.get_legacy_name('old_sector_id')),
  39. ),
  40. )
  41. def fill_res_partner_industry_secondary(cr):
  42. cr.execute(
  43. """
  44. INSERT INTO res_partner_res_partner_industry_rel (res_partner_id,
  45. res_partner_industry_id)
  46. SELECT rel.res_partner_id, rpi.id
  47. FROM res_partner_res_partner_sector_rel rel
  48. LEFT JOIN res_partner_industry rpi
  49. ON rel.res_partner_sector_id = rpi.%s
  50. """, (AsIs(openupgrade.get_legacy_name('old_sector_id')), ),
  51. )
  52. @openupgrade.migrate(use_env=True)
  53. def migrate(env, version):
  54. cr = env.cr
  55. if openupgrade.table_exists(cr, 'res_partner_sector'):
  56. fill_res_partner_industry(cr)
  57. env['res.partner.industry']._parent_store_compute()
  58. update_res_partner_industry(cr)
  59. fill_res_partner_industry_secondary(cr)