Files
tryton/configuration.py
T

69 lines
2.5 KiB
Python
Raw Normal View History

2014-12-02 12:54:29 +01:00
# This file is part of Tryton. The COPYRIGHT file at the top level of
# this repository contains the full copyright notices and license terms.
from trytond.model import ModelView, ModelSQL, ModelSingleton, fields
from trytond.pool import Pool
from trytond.transaction import Transaction
2012-04-03 20:06:15 +02:00
from trytond.pyson import Eval
2012-09-24 22:17:29 +02:00
__all__ = ['Configuration']
class Configuration(ModelSingleton, ModelSQL, ModelView):
'Account Configuration'
2012-09-24 22:17:29 +02:00
__name__ = 'account.configuration'
default_account_receivable = fields.Function(fields.Many2One(
'account.account', 'Default Account Receivable',
domain=[
2012-04-03 20:06:15 +02:00
('kind', '=', 'receivable'),
2013-10-09 18:25:04 +02:00
('company', '=', Eval('context', {}).get('company', -1)),
2012-04-03 20:06:15 +02:00
]),
'get_account', setter='set_account')
default_account_payable = fields.Function(fields.Many2One(
'account.account', 'Default Account Payable',
domain=[
2012-04-03 20:06:15 +02:00
('kind', '=', 'payable'),
2013-10-09 18:25:04 +02:00
('company', '=', Eval('context', {}).get('company', -1)),
2012-04-03 20:06:15 +02:00
]),
'get_account', setter='set_account')
2012-09-24 22:17:29 +02:00
def get_account(self, name):
pool = Pool()
Property = pool.get('ir.property')
ModelField = pool.get('ir.model.field')
2011-12-01 13:24:15 +01:00
company_id = Transaction().context.get('company')
2012-09-24 22:17:29 +02:00
account_field, = ModelField.search([
('model.model', '=', 'party.party'),
('name', '=', name[8:]),
], limit=1)
2012-09-24 22:17:29 +02:00
properties = Property.search([
('field', '=', account_field.id),
2012-03-27 10:43:03 +02:00
('res', '=', None),
2011-12-01 13:24:15 +01:00
('company', '=', company_id),
], limit=1)
2012-09-24 22:17:29 +02:00
if properties:
prop, = properties
return prop.value.id
2011-12-01 13:24:15 +01:00
2012-09-24 22:17:29 +02:00
@classmethod
def set_account(cls, configurations, name, value):
pool = Pool()
Property = pool.get('ir.property')
ModelField = pool.get('ir.model.field')
2011-12-01 13:24:15 +01:00
company_id = Transaction().context.get('company')
2012-09-24 22:17:29 +02:00
account_field, = ModelField.search([
2011-12-01 13:24:15 +01:00
('model.model', '=', 'party.party'),
('name', '=', name[8:]),
], limit=1)
2012-09-24 22:17:29 +02:00
properties = Property.search([
('field', '=', account_field.id),
2012-03-27 10:43:03 +02:00
('res', '=', None),
2011-12-01 13:24:15 +01:00
('company', '=', company_id),
])
2014-09-17 21:44:51 +02:00
Property.delete(properties)
if value:
Property.create([{
'field': account_field.id,
'value': 'account.account,%s' % value,
'company': company_id,
}])