merge account.kind and account.type
This commit is contained in:
parent
96b8fed26d
commit
27c236d845
18
account.py
18
account.py
|
@ -4,7 +4,7 @@ from itertools import chain
|
|||
|
||||
from trytond.model import ModelView, fields, dualmethod
|
||||
from trytond.pool import Pool, PoolMeta
|
||||
from trytond.pyson import Eval
|
||||
from trytond.pyson import Eval, Bool
|
||||
from trytond.i18n import gettext
|
||||
from trytond.exceptions import UserError
|
||||
|
||||
|
@ -28,9 +28,9 @@ class Account(metaclass=PoolMeta):
|
|||
('id', 'not in', Eval('analytic_forbidden')),
|
||||
('id', 'not in', Eval('analytic_optional')),
|
||||
], states={
|
||||
'invisible': Eval('kind') == 'view',
|
||||
'invisible':~Bool(Eval('type')),
|
||||
},
|
||||
depends=['company', 'analytic_forbidden', 'analytic_optional', 'kind'])
|
||||
depends=['company', 'analytic_forbidden', 'analytic_optional', 'type'])
|
||||
analytic_forbidden = fields.Many2Many(
|
||||
'analytic_account.account-forbidden-account.account', 'account',
|
||||
'analytic_account', 'Analytic Forbidden', domain=[
|
||||
|
@ -39,9 +39,9 @@ class Account(metaclass=PoolMeta):
|
|||
('id', 'not in', Eval('analytic_required')),
|
||||
('id', 'not in', Eval('analytic_optional')),
|
||||
], states={
|
||||
'invisible': Eval('kind') == 'view',
|
||||
'invisible':~Bool(Eval('type')),
|
||||
},
|
||||
depends=['company', 'analytic_required', 'analytic_optional', 'kind'])
|
||||
depends=['company', 'analytic_required', 'analytic_optional', 'type'])
|
||||
analytic_optional = fields.Many2Many(
|
||||
'analytic_account.account-optional-account.account', 'account',
|
||||
'analytic_account', 'Analytic Optional', domain=[
|
||||
|
@ -50,14 +50,14 @@ class Account(metaclass=PoolMeta):
|
|||
('id', 'not in', Eval('analytic_required')),
|
||||
('id', 'not in', Eval('analytic_forbidden')),
|
||||
], states={
|
||||
'invisible': Eval('kind') == 'view',
|
||||
'invisible':~Bool(Eval('type')),
|
||||
},
|
||||
depends=['company', 'analytic_required', 'analytic_forbidden', 'kind'])
|
||||
depends=['company', 'analytic_required', 'analytic_forbidden', 'type'])
|
||||
analytic_pending_accounts = fields.Function(
|
||||
fields.Many2Many('analytic_account.account', None, None,
|
||||
'Pending Accounts', states={
|
||||
'invisible': Eval('kind') == 'view',
|
||||
}, depends=['kind']),
|
||||
'invisible':~Bool(Eval('type')),
|
||||
}, depends=['type']),
|
||||
'on_change_with_analytic_pending_accounts')
|
||||
|
||||
|
||||
|
|
|
@ -24,7 +24,7 @@ class AnalyticAccount(metaclass=PoolMeta):
|
|||
analytic_required = fields.Many2Many(
|
||||
'analytic_account.account-required-account.account',
|
||||
'analytic_account', 'account', 'Analytic Required', domain=[
|
||||
('kind', '!=', 'view'),
|
||||
('type', '!=', None),
|
||||
('company', '=', Eval('company')),
|
||||
('id', 'not in', Eval('analytic_forbidden')),
|
||||
('id', 'not in', Eval('analytic_optional')),
|
||||
|
@ -35,7 +35,7 @@ class AnalyticAccount(metaclass=PoolMeta):
|
|||
analytic_forbidden = fields.Many2Many(
|
||||
'analytic_account.account-forbidden-account.account',
|
||||
'analytic_account', 'account', 'Analytic Forbidden', domain=[
|
||||
('kind', '!=', 'view'),
|
||||
('type', '!=', None),
|
||||
('company', '=', Eval('company')),
|
||||
('id', 'not in', Eval('analytic_required')),
|
||||
('id', 'not in', Eval('analytic_optional')),
|
||||
|
@ -46,7 +46,7 @@ class AnalyticAccount(metaclass=PoolMeta):
|
|||
analytic_optional = fields.Many2Many(
|
||||
'analytic_account.account-optional-account.account',
|
||||
'analytic_account', 'account', 'Analytic Optional', domain=[
|
||||
('kind', '!=', 'view'),
|
||||
('type', '!=', None),
|
||||
('company', '=', Eval('company')),
|
||||
('id', 'not in', Eval('analytic_required')),
|
||||
('id', 'not in', Eval('analytic_forbidden')),
|
||||
|
@ -70,7 +70,7 @@ class AnalyticAccount(metaclass=PoolMeta):
|
|||
current_accounts += [x.id for x in self.analytic_forbidden]
|
||||
current_accounts += [x.id for x in self.analytic_optional]
|
||||
pending_accounts = Account.search([
|
||||
('kind', '!=', 'view'),
|
||||
('type', '!=', None),
|
||||
('company', '=', self.company),
|
||||
('id', 'not in', current_accounts),
|
||||
])
|
||||
|
|
|
@ -68,13 +68,19 @@ class TestCase(ModuleTestCase):
|
|||
Account = pool.get('account.account')
|
||||
AnalyticAccount = pool.get('analytic_account.account')
|
||||
revenue_expense = Account.search([
|
||||
('kind', 'in', ('revenue', 'expense')),
|
||||
'OR',('type.expense', '=', True),
|
||||
('type.revenue', '=', True)
|
||||
])
|
||||
receivable_payable = Account.search([
|
||||
('kind', 'in', ('receivable', 'payable')),
|
||||
'OR', ('type.payable', '=', True),
|
||||
('type.receivable', '=', True)
|
||||
])
|
||||
other = Account.search([
|
||||
('kind', '=', 'other'),
|
||||
('type','!=', None),
|
||||
('type.revenue', '=', False),
|
||||
('type.expense', '=', False),
|
||||
('type.payable', '=', False),
|
||||
('type.receivable', '=', False)
|
||||
])
|
||||
roots = AnalyticAccount.search([
|
||||
('type', '=', 'root')
|
||||
|
@ -135,16 +141,16 @@ class TestCase(ModuleTestCase):
|
|||
('code', '=', 'EXP'),
|
||||
])
|
||||
revenue, = Account.search([
|
||||
('kind', '=', 'revenue'),
|
||||
('type.revenue', '=', True)
|
||||
])
|
||||
receivable, = Account.search([
|
||||
('kind', '=', 'receivable'),
|
||||
('type.receivable', '=', True)
|
||||
])
|
||||
expense, = Account.search([
|
||||
('kind', '=', 'expense'),
|
||||
('type.expense', '=', True)
|
||||
])
|
||||
payable, = Account.search([
|
||||
('kind', '=', 'payable'),
|
||||
('type.payable', '=', True)
|
||||
])
|
||||
project1, = AnalyticAccount.search([
|
||||
('code', '=', 'P1'),
|
||||
|
@ -256,16 +262,16 @@ class TestCase(ModuleTestCase):
|
|||
('code', '=', 'EXP'),
|
||||
])
|
||||
revenue, = Account.search([
|
||||
('kind', '=', 'revenue'),
|
||||
('type.expense', '=', True),
|
||||
])
|
||||
receivable, = Account.search([
|
||||
('kind', '=', 'receivable'),
|
||||
('type.receivable', '=', True),
|
||||
])
|
||||
expense, = Account.search([
|
||||
('kind', '=', 'expense'),
|
||||
('type.expense', '=', True),
|
||||
])
|
||||
payable, = Account.search([
|
||||
('kind', '=', 'payable'),
|
||||
('type.payable', '=', True),
|
||||
])
|
||||
project1, = AnalyticAccount.search([
|
||||
('code', '=', 'P1'),
|
||||
|
@ -326,7 +332,7 @@ class TestCase(ModuleTestCase):
|
|||
# Create some analytic lines on draft move and check how their
|
||||
# state change
|
||||
expense_move_line = [l for l in draft_move.lines
|
||||
if l.account.kind == 'expense'][0]
|
||||
if l.account.type.expense][0]
|
||||
line1, = AnalyticLine.create([{
|
||||
'credit': Decimal(0),
|
||||
'debit': Decimal(600),
|
||||
|
@ -389,10 +395,13 @@ class TestCase(ModuleTestCase):
|
|||
('code', '=', 'REV'),
|
||||
])
|
||||
other, = Account.search([
|
||||
('kind', '=', 'other'),
|
||||
('type.revenue', '=', False),
|
||||
('type.receivable', '=', False),
|
||||
('type.expense', '=', False),
|
||||
('type.payable', '=', False),
|
||||
], limit=1)
|
||||
receivable, = Account.search([
|
||||
('kind', '=', 'receivable'),
|
||||
('type.receivable', '=', True),
|
||||
])
|
||||
project1, = AnalyticAccount.search([
|
||||
('code', '=', 'P1'),
|
||||
|
|
Loading…
Reference in New Issue