New interface for Function/Property fields
This commit is contained in:
+32
-32
@@ -41,7 +41,7 @@ class TypeTemplate(ModelSQL, ModelView):
|
||||
def default_display_balance(self, cursor, user, context=None):
|
||||
return 'debit-credit'
|
||||
|
||||
def get_rec_name(self, cursor, user, ids, name, arg, context=None):
|
||||
def get_rec_name(self, cursor, user, ids, name, context=None):
|
||||
if not ids:
|
||||
return {}
|
||||
res = {}
|
||||
@@ -153,11 +153,11 @@ class Type(ModelSQL, ModelView):
|
||||
childs = fields.One2Many('account.account.type', 'parent', 'Children')
|
||||
sequence = fields.Integer('Sequence', required=True,
|
||||
help='Use to order the account type')
|
||||
currency_digits = fields.Function('get_currency_digits', type='integer',
|
||||
string='Currency Digits')
|
||||
amount = fields.Function('get_amount',
|
||||
digits=(16, Eval('currency_digits', 2)),
|
||||
string='Amount', depends=['currency_digits'])
|
||||
currency_digits = fields.Function(fields.Integer('Currency Digits'),
|
||||
'get_currency_digits')
|
||||
amount = fields.Function(fields.Numeric('Amount',
|
||||
digits=(16, Eval('currency_digits', 2)), depends=['currency_digits']),
|
||||
'get_amount')
|
||||
balance_sheet = fields.Boolean('Balance Sheet')
|
||||
income_statement = fields.Boolean('Income Statement')
|
||||
display_balance = fields.Selection([
|
||||
@@ -181,13 +181,13 @@ class Type(ModelSQL, ModelView):
|
||||
def default_display_balance(self, cursor, user, context=None):
|
||||
return 'debit-credit'
|
||||
|
||||
def get_currency_digits(self, cursor, user, ids, name, arg, context=None):
|
||||
def get_currency_digits(self, cursor, user, ids, name, context=None):
|
||||
res = {}
|
||||
for type in self.browse(cursor, user, ids, context=context):
|
||||
res[type.id] = type.company.currency.digits
|
||||
return res
|
||||
|
||||
def get_amount(self, cursor, user, ids, name, arg, context=None):
|
||||
def get_amount(self, cursor, user, ids, name, context=None):
|
||||
account_obj = self.pool.get('account.account')
|
||||
currency_obj = self.pool.get('currency.currency')
|
||||
|
||||
@@ -225,7 +225,7 @@ class Type(ModelSQL, ModelView):
|
||||
res[type.id] = - res[type.id]
|
||||
return res
|
||||
|
||||
def get_rec_name(self, cursor, user, ids, name, arg, context=None):
|
||||
def get_rec_name(self, cursor, user, ids, name, context=None):
|
||||
if not ids:
|
||||
return {}
|
||||
res = {}
|
||||
@@ -348,7 +348,7 @@ class AccountTemplate(ModelSQL, ModelView):
|
||||
def default_deferral(self, cursor, user, context=None):
|
||||
return True
|
||||
|
||||
def get_rec_name(self, cursor, user, ids, name, arg, context=None):
|
||||
def get_rec_name(self, cursor, user, ids, name, context=None):
|
||||
if not ids:
|
||||
return {}
|
||||
res = {}
|
||||
@@ -525,10 +525,10 @@ class Account(ModelSQL, ModelView):
|
||||
active = fields.Boolean('Active', select=2)
|
||||
company = fields.Many2One('company.company', 'Company', required=True,
|
||||
ondelete="RESTRICT")
|
||||
currency = fields.Function('get_currency', type='many2one',
|
||||
relation='currency.currency', string='Currency')
|
||||
currency_digits = fields.Function('get_currency_digits', type='integer',
|
||||
string='Currency Digits')
|
||||
currency = fields.Function(fields.Many2One('currency.currency',
|
||||
'Currency'), 'get_currency')
|
||||
currency_digits = fields.Function(fields.Integer('Currency Digits'),
|
||||
'get_currency_digits')
|
||||
second_currency = fields.Many2One('currency.currency', 'Secondary currency',
|
||||
help='Force all moves for this account \n' \
|
||||
'to have this secondary currency.', ondelete="RESTRICT")
|
||||
@@ -542,15 +542,15 @@ class Account(ModelSQL, ModelView):
|
||||
left = fields.Integer('Left', required=True, select=1)
|
||||
right = fields.Integer('Right', required=True, select=1)
|
||||
childs = fields.One2Many('account.account', 'parent', 'Children')
|
||||
balance = fields.Function('get_balance',
|
||||
digits=(16, Eval('currency_digits', 2)),
|
||||
string='Balance', depends=['currency_digits'])
|
||||
credit = fields.Function('get_credit_debit',
|
||||
digits=(16, Eval('currency_digits', 2)),
|
||||
string='Credit', depends=['currency_digits'])
|
||||
debit = fields.Function('get_credit_debit',
|
||||
digits=(16, Eval('currency_digits', 2)),
|
||||
string='Debit', depends=['currency_digits'])
|
||||
balance = fields.Function(fields.Numeric('Balance',
|
||||
digits=(16, Eval('currency_digits', 2)), depends=['currency_digits']),
|
||||
'get_balance')
|
||||
credit = fields.Function(fields.Numeric('Credit',
|
||||
digits=(16, Eval('currency_digits', 2)), depends=['currency_digits']),
|
||||
'get_credit_debit')
|
||||
debit = fields.Function(fields.Numeric('Debit',
|
||||
digits=(16, Eval('currency_digits', 2)), depends=['currency_digits']),
|
||||
'get_credit_debit')
|
||||
reconcile = fields.Boolean('Reconcile',
|
||||
help='Allow move lines of this account \n' \
|
||||
'to be reconciled.',
|
||||
@@ -617,20 +617,20 @@ class Account(ModelSQL, ModelView):
|
||||
def default_kind(self, cursor, user, context=None):
|
||||
return 'view'
|
||||
|
||||
def get_currency(self, cursor, user, ids, name, arg, context=None):
|
||||
def get_currency(self, cursor, user, ids, name, context=None):
|
||||
currency_obj = self.pool.get('currency.currency')
|
||||
res = {}
|
||||
for account in self.browse(cursor, user, ids, context=context):
|
||||
res[account.id] = account.company.currency.id
|
||||
return res
|
||||
|
||||
def get_currency_digits(self, cursor, user, ids, name, arg, context=None):
|
||||
def get_currency_digits(self, cursor, user, ids, name, context=None):
|
||||
res = {}
|
||||
for account in self.browse(cursor, user, ids, context=context):
|
||||
res[account.id] = account.company.currency.digits
|
||||
return res
|
||||
|
||||
def get_balance(self, cursor, user, ids, name, arg, context=None):
|
||||
def get_balance(self, cursor, user, ids, name, context=None):
|
||||
res = {}
|
||||
company_obj = self.pool.get('company.company')
|
||||
currency_obj = self.pool.get('currency.currency')
|
||||
@@ -737,7 +737,7 @@ class Account(ModelSQL, ModelView):
|
||||
res[account_id])
|
||||
return res
|
||||
|
||||
def get_credit_debit(self, cursor, user, ids, names, arg, context=None):
|
||||
def get_credit_debit(self, cursor, user, ids, names, context=None):
|
||||
'''
|
||||
Function to compute debit, credit for account ids.
|
||||
|
||||
@@ -853,7 +853,7 @@ class Account(ModelSQL, ModelView):
|
||||
currency, res[name][account_id])
|
||||
return res
|
||||
|
||||
def get_rec_name(self, cursor, user, ids, name, arg, context=None):
|
||||
def get_rec_name(self, cursor, user, ids, name, context=None):
|
||||
if not ids:
|
||||
return {}
|
||||
res = {}
|
||||
@@ -1039,8 +1039,8 @@ class AccountDeferral(ModelSQL, ModelView):
|
||||
depends=['currency_digits'])
|
||||
credit = fields.Numeric('Credit', digits=(16, Eval('currency_digits', 2)),
|
||||
depends=['currency_digits'])
|
||||
currency_digits = fields.Function('get_currency_digits', type='integer',
|
||||
string='Currency Digits')
|
||||
currency_digits = fields.Function(fields.Integer('Currency Digits'),
|
||||
'get_currency_digits')
|
||||
|
||||
def __init__(self):
|
||||
super(AccountDeferral, self).__init__()
|
||||
@@ -1052,13 +1052,13 @@ class AccountDeferral(ModelSQL, ModelView):
|
||||
'write_deferral': 'You can not modify Account Deferral records',
|
||||
})
|
||||
|
||||
def get_currency_digits(self, cursor, user, ids, name, arg, context=None):
|
||||
def get_currency_digits(self, cursor, user, ids, name, context=None):
|
||||
res = {}
|
||||
for deferral in self.browse(cursor, user, ids, context=context):
|
||||
res[deferral.id] = deferral.account.currency_digits
|
||||
return res
|
||||
|
||||
def get_rec_name(self, cursor, user, ids, name, arg, context=None):
|
||||
def get_rec_name(self, cursor, user, ids, name, context=None):
|
||||
if not ids:
|
||||
return {}
|
||||
res = {}
|
||||
|
||||
+30
-30
@@ -85,34 +85,34 @@ class Journal(ModelSQL, ModelView):
|
||||
view = fields.Many2One('account.journal.view', 'View')
|
||||
centralised = fields.Boolean('Centralised counterpart')
|
||||
update_posted = fields.Boolean('Allow cancelling moves')
|
||||
sequence = fields.Property(type='many2one', relation='ir.sequence',
|
||||
string='Sequence', required=True,
|
||||
domain=[('code', '=', 'account.journal')],
|
||||
context={'code': 'account.journal'})
|
||||
credit_account = fields.Property(type='many2one',
|
||||
relation='account.account', string='Default Credit Account',
|
||||
domain=[
|
||||
('kind', '!=', 'view'),
|
||||
('company', '=', Get(Eval('context', {}), 'company', 0)),
|
||||
],
|
||||
states={
|
||||
'required': Or(Bool(Eval('centralised')),
|
||||
And(Equal(Eval('type'), 'cash'),
|
||||
Bool(Get(Eval('context', {}), 'company', 0)))),
|
||||
'invisible': Not(Bool(Get(Eval('context', {}), 'company', 0))),
|
||||
}, depends=['type', 'centralised'])
|
||||
debit_account = fields.Property(type='many2one',
|
||||
relation='account.account', string='Default Debit Account',
|
||||
domain=[
|
||||
('kind', '!=', 'view'),
|
||||
('company', '=', Get(Eval('context', {}), 'company', 0)),
|
||||
],
|
||||
states={
|
||||
'required': Or(Bool(Eval('centralised')),
|
||||
And(Equal(Eval('type'), 'cash'),
|
||||
Bool(Get(Eval('context', {}), 'company', 0)))),
|
||||
'invisible': Not(Bool(Get(Eval('context', {}), 'company', 0))),
|
||||
}, depends=['type', 'centralised'])
|
||||
sequence = fields.Property(fields.Many2One('ir.sequence', 'Sequence',
|
||||
domain=[('code', '=', 'account.journal')],
|
||||
context={'code': 'account.journal'},
|
||||
states={
|
||||
'required': Bool(Get(Eval('context', {}), 'company', 0)),
|
||||
}))
|
||||
credit_account = fields.Property(fields.Many2One('account.account',
|
||||
'Default Credit Account', domain=[
|
||||
('kind', '!=', 'view'),
|
||||
('company', '=', Get(Eval('context', {}), 'company', 0)),
|
||||
],
|
||||
states={
|
||||
'required': Or(Bool(Eval('centralised')),
|
||||
And(Equal(Eval('type'), 'cash'),
|
||||
Bool(Get(Eval('context', {}), 'company', 0)))),
|
||||
'invisible': Not(Bool(Get(Eval('context', {}), 'company', 0))),
|
||||
}, depends=['type', 'centralised']))
|
||||
debit_account = fields.Property(fields.Many2One('account.account',
|
||||
'Default Debit Account', domain=[
|
||||
('kind', '!=', 'view'),
|
||||
('company', '=', Get(Eval('context', {}), 'company', 0)),
|
||||
],
|
||||
states={
|
||||
'required': Or(Bool(Eval('centralised')),
|
||||
And(Equal(Eval('type'), 'cash'),
|
||||
Bool(Get(Eval('context', {}), 'company', 0)))),
|
||||
'invisible': Not(Bool(Get(Eval('context', {}), 'company', 0))),
|
||||
}, depends=['type', 'centralised']))
|
||||
|
||||
def __init__(self):
|
||||
super(Journal, self).__init__()
|
||||
@@ -177,7 +177,7 @@ class Period(ModelSQL, ModelView):
|
||||
ondelete='CASCADE', states=STATES, depends=DEPENDS)
|
||||
period = fields.Many2One('account.period', 'Period', required=True,
|
||||
ondelete='CASCADE', states=STATES, depends=DEPENDS)
|
||||
icon = fields.Function('get_icon', string='Icon', type='char')
|
||||
icon = fields.Function(fields.Char('Icon'), 'get_icon')
|
||||
active = fields.Boolean('Active', select=2, states=STATES, depends=DEPENDS)
|
||||
state = fields.Selection([
|
||||
('open', 'Open'),
|
||||
@@ -206,7 +206,7 @@ class Period(ModelSQL, ModelView):
|
||||
def default_state(self, cursor, user, context=None):
|
||||
return 'open'
|
||||
|
||||
def get_icon(self, cursor, user, ids, name, arg, context=None):
|
||||
def get_icon(self, cursor, user, ids, name, context=None):
|
||||
res = {}
|
||||
for period in self.browse(cursor, user, ids, context=context):
|
||||
res[period.id] = _ICONS.get(period.state, '')
|
||||
|
||||
@@ -456,15 +456,15 @@ class Line(ModelSQL, ModelView):
|
||||
'journal', 'move'])
|
||||
move = fields.Many2One('account.move', 'Move', states=_LINE_STATES,
|
||||
select=1, required=True)
|
||||
journal = fields.Function('get_move_field', fnct_inv='set_move_field',
|
||||
type='many2one', relation='account.journal', string='Journal',
|
||||
fnct_search='search_move_field')
|
||||
period = fields.Function('get_move_field', fnct_inv='set_move_field',
|
||||
type='many2one', relation='account.period', string='Period',
|
||||
fnct_search='search_move_field')
|
||||
date = fields.Function('get_move_field', fnct_inv='set_move_field',
|
||||
type='date', string='Effective Date', required=True,
|
||||
fnct_search='search_move_field')
|
||||
journal = fields.Function(fields.Many2One('account.journal', 'Journal'),
|
||||
'get_move_field', setter='set_move_field',
|
||||
searcher='search_move_field')
|
||||
period = fields.Function(fields.Many2One('account.period', 'Period'),
|
||||
'get_move_field', setter='set_move_field',
|
||||
searcher='search_move_field')
|
||||
date = fields.Function(fields.Date('Effective Date', required=True),
|
||||
'get_move_field', setter='set_move_field',
|
||||
searcher='search_move_field')
|
||||
reference = fields.Char('Reference', size=None)
|
||||
amount_second_currency = fields.Numeric('Amount Second Currency',
|
||||
digits=(16, Eval('second_currency_digits', 2)),
|
||||
@@ -487,15 +487,14 @@ class Line(ModelSQL, ModelView):
|
||||
reconciliation = fields.Many2One('account.move.reconciliation',
|
||||
'Reconciliation', readonly=True, ondelete='SET NULL', select=2)
|
||||
tax_lines = fields.One2Many('account.tax.line', 'move_line', 'Tax Lines')
|
||||
move_state = fields.Function('get_move_field', type='selection',
|
||||
selection=[
|
||||
('draft', 'Draft'),
|
||||
('posted', 'Posted'),
|
||||
], string='Move State', fnct_search='search_move_field')
|
||||
currency_digits = fields.Function('get_currency_digits', type='integer',
|
||||
string='Currency Digits')
|
||||
second_currency_digits = fields.Function('get_currency_digits',
|
||||
type='integer', string='Second Currency Digits')
|
||||
move_state = fields.Function(fields.Selection([
|
||||
('draft', 'Draft'),
|
||||
('posted', 'Posted'),
|
||||
], 'Move State'), 'get_move_field', searcher='search_move_field')
|
||||
currency_digits = fields.Function(fields.Integer('Currency Digits'),
|
||||
'get_currency_digits')
|
||||
second_currency_digits = fields.Function(fields.Integer(
|
||||
'Second Currency Digits'), 'get_currency_digits')
|
||||
|
||||
def __init__(self):
|
||||
super(Line, self).__init__()
|
||||
@@ -718,7 +717,7 @@ class Line(ModelSQL, ModelView):
|
||||
]
|
||||
return values
|
||||
|
||||
def get_currency_digits(self, cursor, user, ids, names, arg, context=None):
|
||||
def get_currency_digits(self, cursor, user, ids, names, context=None):
|
||||
res = {}
|
||||
for line in self.browse(cursor, user, ids, context=context):
|
||||
for name in names:
|
||||
@@ -936,7 +935,7 @@ class Line(ModelSQL, ModelView):
|
||||
res['account.rec_name'] = party.account_payable.rec_name
|
||||
return res
|
||||
|
||||
def get_move_field(self, cursor, user, ids, name, arg, context=None):
|
||||
def get_move_field(self, cursor, user, ids, name, context=None):
|
||||
if name == 'move_state':
|
||||
name = 'state'
|
||||
if name not in ('period', 'journal', 'date', 'state'):
|
||||
@@ -949,7 +948,7 @@ class Line(ModelSQL, ModelView):
|
||||
res[line.id] = line.move[name].id
|
||||
return res
|
||||
|
||||
def set_move_field(self, cursor, user, id, name, value, arg, context=None):
|
||||
def set_move_field(self, cursor, user, ids, name, value, context=None):
|
||||
if name == 'move_state':
|
||||
name = 'state'
|
||||
if name not in ('period', 'journal', 'date', 'state'):
|
||||
@@ -957,8 +956,8 @@ class Line(ModelSQL, ModelView):
|
||||
if not value:
|
||||
return
|
||||
move_obj = self.pool.get('account.move')
|
||||
line = self.browse(cursor, user, id, context=context)
|
||||
move_obj.write(cursor, user, line.move.id, {
|
||||
lines = self.browse(cursor, user, ids, context=context)
|
||||
move_obj.write(cursor, user, [line.move.id for line in lines], {
|
||||
name: value,
|
||||
}, context=context)
|
||||
|
||||
|
||||
@@ -7,48 +7,44 @@ from decimal import Decimal
|
||||
|
||||
class Party(ModelSQL, ModelView):
|
||||
_name = 'party.party'
|
||||
account_payable = fields.Property(type='many2one',
|
||||
relation='account.account', string='Account Payable',
|
||||
domain=[
|
||||
('kind', '=', 'payable'),
|
||||
('company', '=', Eval('company')),
|
||||
],
|
||||
states={
|
||||
'required': Bool(Eval('company')),
|
||||
'invisible': Not(Bool(Eval('company'))),
|
||||
})
|
||||
account_receivable = fields.Property(type='many2one',
|
||||
relation='account.account', string='Account Receivable',
|
||||
domain=[
|
||||
('kind', '=', 'receivable'),
|
||||
('company', '=', Eval('company')),
|
||||
],
|
||||
states={
|
||||
'required': Bool(Eval('company')),
|
||||
'invisible': Not(Bool(Eval('company'))),
|
||||
})
|
||||
customer_tax_rule = fields.Property(type='many2one',
|
||||
relation='account.tax.rule', string='Customer Tax Rule',
|
||||
domain=[('company', '=', Eval('company'))],
|
||||
states={
|
||||
'invisible': Not(Bool(Eval('company'))),
|
||||
}, help='Apply this rule on taxes when party is customer.')
|
||||
supplier_tax_rule = fields.Property(type='many2one',
|
||||
relation='account.tax.rule', string='Supplier Tax Rule',
|
||||
domain=[('company', '=', Eval('company'))],
|
||||
states={
|
||||
'invisible': Not(Bool(Eval('company'))),
|
||||
}, help='Apply this rule on taxes when party is supplier.')
|
||||
receivable = fields.Function('get_receivable_payable',
|
||||
fnct_search='search_receivable_payable', string='Receivable')
|
||||
payable = fields.Function('get_receivable_payable',
|
||||
fnct_search='search_receivable_payable', string='Payable')
|
||||
receivable_today = fields.Function('get_receivable_payable',
|
||||
fnct_search='search_receivable_payable', string='Receivable Today')
|
||||
payable_today = fields.Function('get_receivable_payable',
|
||||
fnct_search='search_receivable_payable', string='Payable Today')
|
||||
account_payable = fields.Property(fields.Many2One('account.account',
|
||||
'Account Payable', domain=[
|
||||
('kind', '=', 'payable'),
|
||||
('company', '=', Eval('company')),
|
||||
],
|
||||
states={
|
||||
'required': Bool(Eval('company')),
|
||||
'invisible': Not(Bool(Eval('company'))),
|
||||
}))
|
||||
account_receivable = fields.Property(fields.Many2One('account.account',
|
||||
'Account Receivable', domain=[
|
||||
('kind', '=', 'receivable'),
|
||||
('company', '=', Eval('company')),
|
||||
],
|
||||
states={
|
||||
'required': Bool(Eval('company')),
|
||||
'invisible': Not(Bool(Eval('company'))),
|
||||
}))
|
||||
customer_tax_rule = fields.Property(fields.Many2One('account.tax.rule',
|
||||
'Customer Tax Rule', domain=[('company', '=', Eval('company'))],
|
||||
states={
|
||||
'invisible': Not(Bool(Eval('company'))),
|
||||
}, help='Apply this rule on taxes when party is customer.'))
|
||||
supplier_tax_rule = fields.Property(fields.Many2One('account.tax.rule',
|
||||
'Supplier Tax Rule', domain=[('company', '=', Eval('company'))],
|
||||
states={
|
||||
'invisible': Not(Bool(Eval('company'))),
|
||||
}, help='Apply this rule on taxes when party is supplier.'))
|
||||
receivable = fields.Function(fields.Numeric('Receivable'),
|
||||
'get_receivable_payable', searcher='search_receivable_payable')
|
||||
payable = fields.Function(fields.Numeric('Payable'),
|
||||
'get_receivable_payable', searcher='search_receivable_payable')
|
||||
receivable_today = fields.Function(fields.Numeric('Receivable Today'),
|
||||
'get_receivable_payable', searcher='search_receivable_payable')
|
||||
payable_today = fields.Function(fields.Numeric('Payable Today'),
|
||||
'get_receivable_payable', searcher='search_receivable_payable')
|
||||
|
||||
def get_receivable_payable(self, cursor, user_id, ids, names, arg,
|
||||
def get_receivable_payable(self, cursor, user_id, ids, names,
|
||||
context=None):
|
||||
'''
|
||||
Function to compute receivable, payable (today or not) for party ids.
|
||||
|
||||
@@ -154,10 +154,11 @@ class Code(ModelSQL, ModelView):
|
||||
domain=[('company', '=', Eval('company', 0))], depends=['company'])
|
||||
childs = fields.One2Many('account.tax.code', 'parent', 'Children',
|
||||
domain=[('company', '=', Eval('company', 0))], depends=['company'])
|
||||
currency_digits = fields.Function('get_currency_digits', type='integer',
|
||||
string='Currency Digits', on_change_with=['company'])
|
||||
sum = fields.Function('get_sum', digits=(16, Eval('currency_digits', 2)),
|
||||
string='Sum', depends=['currency_digits'])
|
||||
currency_digits = fields.Function(fields.Integer('Currency Digits',
|
||||
on_change_with=['company']), 'get_currency_digits')
|
||||
sum = fields.Function(fields.Numeric('Sum',
|
||||
digits=(16, Eval('currency_digits', 2)), depends=['currency_digits']),
|
||||
'get_sum')
|
||||
template = fields.Many2One('account.tax.code.template', 'Template')
|
||||
description = fields.Text('Description', translate=True)
|
||||
|
||||
@@ -190,13 +191,13 @@ class Code(ModelSQL, ModelView):
|
||||
return company.currency.digits
|
||||
return 2
|
||||
|
||||
def get_currency_digits(self, cursor, user, ids, name, arg, context=None):
|
||||
def get_currency_digits(self, cursor, user, ids, name, context=None):
|
||||
res = {}
|
||||
for code in self.browse(cursor, user, ids, context=context):
|
||||
res[code.id] = code.company.currency.digits
|
||||
return res
|
||||
|
||||
def get_sum(self, cursor, user, ids, name, arg, context=None):
|
||||
def get_sum(self, cursor, user, ids, name, context=None):
|
||||
res = {}
|
||||
move_line_obj = self.pool.get('account.move.line')
|
||||
currency_obj = self.pool.get('currency.currency')
|
||||
@@ -237,7 +238,7 @@ class Code(ModelSQL, ModelView):
|
||||
code.company.currency, res[code.id])
|
||||
return res
|
||||
|
||||
def get_rec_name(self, cursor, user, ids, name, arg, context=None):
|
||||
def get_rec_name(self, cursor, user, ids, name, context=None):
|
||||
if not ids:
|
||||
return {}
|
||||
res = {}
|
||||
@@ -601,8 +602,8 @@ class Tax(ModelSQL, ModelView):
|
||||
active = fields.Boolean('Active')
|
||||
sequence = fields.Integer('Sequence',
|
||||
help='Use to order the taxes')
|
||||
currency_digits = fields.Function('get_currency_digits', type='integer',
|
||||
string='Currency Digits', on_change_with=['company'])
|
||||
currency_digits = fields.Function(fields.Integer('Currency Digits',
|
||||
on_change_with=['company']), 'get_currency_digits')
|
||||
amount = fields.Numeric('Amount', digits=(16, Eval('currency_digits', 2)),
|
||||
states={
|
||||
'invisible': Not(Equal(Eval('type'), 'fixed')),
|
||||
@@ -736,7 +737,7 @@ class Tax(ModelSQL, ModelView):
|
||||
return company.currency.digits
|
||||
return 2
|
||||
|
||||
def get_currency_digits(self, cursor, user, ids, name, arg, context=None):
|
||||
def get_currency_digits(self, cursor, user, ids, name, context=None):
|
||||
res = {}
|
||||
for tax in self.browse(cursor, user, ids, context=context):
|
||||
res[tax.id] = tax.company.currency.digits
|
||||
@@ -940,8 +941,8 @@ class Line(ModelSQL, ModelView):
|
||||
_description = __doc__
|
||||
_rec_name = 'amount'
|
||||
|
||||
currency_digits = fields.Function('get_currency_digits', type='integer',
|
||||
string='Currency Digits', on_change_with=['move_line'])
|
||||
currency_digits = fields.Function(fields.Integer('Currency Digits',
|
||||
on_change_with=['move_line']), 'get_currency_digits')
|
||||
amount = fields.Numeric('Amount', digits=(16, Eval('currency_digits', 2)),
|
||||
depends=['currency_digits'])
|
||||
code = fields.Many2One('account.tax.code', 'Code', select=1, required=True)
|
||||
@@ -959,7 +960,7 @@ class Line(ModelSQL, ModelView):
|
||||
return move_line.currency_digits
|
||||
return 2
|
||||
|
||||
def get_currency_digits(self, cursor, user, ids, name, arg, context=None):
|
||||
def get_currency_digits(self, cursor, user, ids, name, context=None):
|
||||
res = {}
|
||||
for line in self.browse(cursor, user, ids, context=context):
|
||||
res[line.id] = line.move_line.currency_digits
|
||||
|
||||
Reference in New Issue
Block a user