merge account.kind and account.type

This commit is contained in:
?ngel ?lvarez 2019-04-04 12:23:27 +02:00
parent 96b8fed26d
commit 27c236d845
3 changed files with 36 additions and 27 deletions

View File

@ -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')

View File

@ -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),
])

View File

@ -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'),