# -*- coding: utf-8 -*- from odoo import models, fields, tools class ResPartnerRoot(models.Model): _name = "res.partner.hierarchy" _description = "Partners hierarchy" _auto = False name = fields.Char() active = fields.Boolean() parent_id = fields.Many2one("res.partner.hierarchy") def init(self): tools.drop_view_if_exists(self.env.cr, self._table) self.env.cr.execute( """ CREATE OR REPLACE VIEW %s AS ( SELECT DISTINCT id AS id, active as active, CONCAT(partner_code, ' - ', ref) AS name, NULL::int AS parent_id FROM res_partner WHERE partner_code IS NOT NULL AND ffck_network IS TRUE AND partner_scale = '1' AND (ref IS NOT NULL OR name IS NOT NULL) UNION ALL SELECT DISTINCT id AS id, active as active, CONCAT(partner_code, ' - ', ref) AS name, ffck_partner_id AS parent_id FROM res_partner WHERE partner_code IS NOT NULL AND ffck_network IS TRUE AND partner_scale = '2' AND (ref IS NOT NULL OR name IS NOT NULL) UNION ALL SELECT DISTINCT id AS id, active as active, CONCAT(partner_code, ' - ', ref) AS name, crck_partner_id AS parent_id FROM res_partner WHERE partner_code IS NOT NULL AND ffck_network IS TRUE AND partner_scale = '3' AND (ref IS NOT NULL OR name IS NOT NULL) UNION ALL SELECT DISTINCT id AS id, active as active, CONCAT(partner_code, ' - ', ref) AS name, cdck_partner_id AS parent_id FROM res_partner WHERE partner_code IS NOT NULL AND ffck_network IS TRUE AND partner_scale = '4' AND (ref IS NOT NULL OR name IS NOT NULL) )""" % (self._table,) )