# The COPYRIGHT file at the top level of # this repository contains the full copyright notices and license terms. from trytond.model import ModelSQL, fields from trytond.pool import PoolMeta, Pool from trytond.modules.company.model import CompanyValueMixin from trytond import backend from trytond.tools.multivalue import migrate_property __all__ = ['Party', 'PartyParty'] parties_names = ['customer_to_invoice', 'supplier_to_invoice'] class Party: __name__ = 'party.party' __metaclass__ = PoolMeta customer_to_invoice = fields.MultiValue( fields.Many2One('party.party', 'Customer to invoice')) supplier_to_invoice = fields.MultiValue( fields.Many2One('party.party', 'Supplier to invoice')) @classmethod def multivalue_model(cls, field): pool = Pool() if field in parties_names: return pool.get('party.party.party') return super(Party, cls).multivalue_model(field) class PartyParty(ModelSQL, CompanyValueMixin): "Party Party" __name__ = 'party.party.party' customer_to_invoice = fields.Many2One('party.party', 'Customer to invoice') supplier_to_invoice = fields.Many2One('party.party', 'Supplier to invoice') @classmethod def __register__(cls, module_name): TableHandler = backend.get('TableHandler') exist = TableHandler.table_exist(cls._table) super(PartyParty, cls).__register__(module_name) if not exist: cls._migrate_property([], [], []) @classmethod def _migrate_property(cls, field_names, value_names, fields): field_names.extend(parties_names) value_names.extend(parties_names) fields.append('company') migrate_property('party.party', field_names, cls, value_names, fields=fields)