trytond-account_invoice_par.../party.py

53 lines
1.8 KiB
Python

# 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)