mirror of
https://github.com/NaN-tic/trytond-analytic_line_state.git
synced 2023-12-14 03:33:02 +01:00
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.model import ModelView, fields, dualmethod
|
||||||
from trytond.pool import Pool, PoolMeta
|
from trytond.pool import Pool, PoolMeta
|
||||||
from trytond.pyson import Eval
|
from trytond.pyson import Eval, Bool
|
||||||
from trytond.i18n import gettext
|
from trytond.i18n import gettext
|
||||||
from trytond.exceptions import UserError
|
from trytond.exceptions import UserError
|
||||||
|
|
||||||
|
@ -28,9 +28,9 @@ class Account(metaclass=PoolMeta):
|
||||||
('id', 'not in', Eval('analytic_forbidden')),
|
('id', 'not in', Eval('analytic_forbidden')),
|
||||||
('id', 'not in', Eval('analytic_optional')),
|
('id', 'not in', Eval('analytic_optional')),
|
||||||
], states={
|
], 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_forbidden = fields.Many2Many(
|
||||||
'analytic_account.account-forbidden-account.account', 'account',
|
'analytic_account.account-forbidden-account.account', 'account',
|
||||||
'analytic_account', 'Analytic Forbidden', domain=[
|
'analytic_account', 'Analytic Forbidden', domain=[
|
||||||
|
@ -39,9 +39,9 @@ class Account(metaclass=PoolMeta):
|
||||||
('id', 'not in', Eval('analytic_required')),
|
('id', 'not in', Eval('analytic_required')),
|
||||||
('id', 'not in', Eval('analytic_optional')),
|
('id', 'not in', Eval('analytic_optional')),
|
||||||
], states={
|
], 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_optional = fields.Many2Many(
|
||||||
'analytic_account.account-optional-account.account', 'account',
|
'analytic_account.account-optional-account.account', 'account',
|
||||||
'analytic_account', 'Analytic Optional', domain=[
|
'analytic_account', 'Analytic Optional', domain=[
|
||||||
|
@ -50,14 +50,14 @@ class Account(metaclass=PoolMeta):
|
||||||
('id', 'not in', Eval('analytic_required')),
|
('id', 'not in', Eval('analytic_required')),
|
||||||
('id', 'not in', Eval('analytic_forbidden')),
|
('id', 'not in', Eval('analytic_forbidden')),
|
||||||
], states={
|
], 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(
|
analytic_pending_accounts = fields.Function(
|
||||||
fields.Many2Many('analytic_account.account', None, None,
|
fields.Many2Many('analytic_account.account', None, None,
|
||||||
'Pending Accounts', states={
|
'Pending Accounts', states={
|
||||||
'invisible': Eval('kind') == 'view',
|
'invisible':~Bool(Eval('type')),
|
||||||
}, depends=['kind']),
|
}, depends=['type']),
|
||||||
'on_change_with_analytic_pending_accounts')
|
'on_change_with_analytic_pending_accounts')
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -24,7 +24,7 @@ class AnalyticAccount(metaclass=PoolMeta):
|
||||||
analytic_required = fields.Many2Many(
|
analytic_required = fields.Many2Many(
|
||||||
'analytic_account.account-required-account.account',
|
'analytic_account.account-required-account.account',
|
||||||
'analytic_account', 'account', 'Analytic Required', domain=[
|
'analytic_account', 'account', 'Analytic Required', domain=[
|
||||||
('kind', '!=', 'view'),
|
('type', '!=', None),
|
||||||
('company', '=', Eval('company')),
|
('company', '=', Eval('company')),
|
||||||
('id', 'not in', Eval('analytic_forbidden')),
|
('id', 'not in', Eval('analytic_forbidden')),
|
||||||
('id', 'not in', Eval('analytic_optional')),
|
('id', 'not in', Eval('analytic_optional')),
|
||||||
|
@ -35,7 +35,7 @@ class AnalyticAccount(metaclass=PoolMeta):
|
||||||
analytic_forbidden = fields.Many2Many(
|
analytic_forbidden = fields.Many2Many(
|
||||||
'analytic_account.account-forbidden-account.account',
|
'analytic_account.account-forbidden-account.account',
|
||||||
'analytic_account', 'account', 'Analytic Forbidden', domain=[
|
'analytic_account', 'account', 'Analytic Forbidden', domain=[
|
||||||
('kind', '!=', 'view'),
|
('type', '!=', None),
|
||||||
('company', '=', Eval('company')),
|
('company', '=', Eval('company')),
|
||||||
('id', 'not in', Eval('analytic_required')),
|
('id', 'not in', Eval('analytic_required')),
|
||||||
('id', 'not in', Eval('analytic_optional')),
|
('id', 'not in', Eval('analytic_optional')),
|
||||||
|
@ -46,7 +46,7 @@ class AnalyticAccount(metaclass=PoolMeta):
|
||||||
analytic_optional = fields.Many2Many(
|
analytic_optional = fields.Many2Many(
|
||||||
'analytic_account.account-optional-account.account',
|
'analytic_account.account-optional-account.account',
|
||||||
'analytic_account', 'account', 'Analytic Optional', domain=[
|
'analytic_account', 'account', 'Analytic Optional', domain=[
|
||||||
('kind', '!=', 'view'),
|
('type', '!=', None),
|
||||||
('company', '=', Eval('company')),
|
('company', '=', Eval('company')),
|
||||||
('id', 'not in', Eval('analytic_required')),
|
('id', 'not in', Eval('analytic_required')),
|
||||||
('id', 'not in', Eval('analytic_forbidden')),
|
('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_forbidden]
|
||||||
current_accounts += [x.id for x in self.analytic_optional]
|
current_accounts += [x.id for x in self.analytic_optional]
|
||||||
pending_accounts = Account.search([
|
pending_accounts = Account.search([
|
||||||
('kind', '!=', 'view'),
|
('type', '!=', None),
|
||||||
('company', '=', self.company),
|
('company', '=', self.company),
|
||||||
('id', 'not in', current_accounts),
|
('id', 'not in', current_accounts),
|
||||||
])
|
])
|
||||||
|
|
|
@ -68,13 +68,19 @@ class TestCase(ModuleTestCase):
|
||||||
Account = pool.get('account.account')
|
Account = pool.get('account.account')
|
||||||
AnalyticAccount = pool.get('analytic_account.account')
|
AnalyticAccount = pool.get('analytic_account.account')
|
||||||
revenue_expense = Account.search([
|
revenue_expense = Account.search([
|
||||||
('kind', 'in', ('revenue', 'expense')),
|
'OR',('type.expense', '=', True),
|
||||||
|
('type.revenue', '=', True)
|
||||||
])
|
])
|
||||||
receivable_payable = Account.search([
|
receivable_payable = Account.search([
|
||||||
('kind', 'in', ('receivable', 'payable')),
|
'OR', ('type.payable', '=', True),
|
||||||
|
('type.receivable', '=', True)
|
||||||
])
|
])
|
||||||
other = Account.search([
|
other = Account.search([
|
||||||
('kind', '=', 'other'),
|
('type','!=', None),
|
||||||
|
('type.revenue', '=', False),
|
||||||
|
('type.expense', '=', False),
|
||||||
|
('type.payable', '=', False),
|
||||||
|
('type.receivable', '=', False)
|
||||||
])
|
])
|
||||||
roots = AnalyticAccount.search([
|
roots = AnalyticAccount.search([
|
||||||
('type', '=', 'root')
|
('type', '=', 'root')
|
||||||
|
@ -135,16 +141,16 @@ class TestCase(ModuleTestCase):
|
||||||
('code', '=', 'EXP'),
|
('code', '=', 'EXP'),
|
||||||
])
|
])
|
||||||
revenue, = Account.search([
|
revenue, = Account.search([
|
||||||
('kind', '=', 'revenue'),
|
('type.revenue', '=', True)
|
||||||
])
|
])
|
||||||
receivable, = Account.search([
|
receivable, = Account.search([
|
||||||
('kind', '=', 'receivable'),
|
('type.receivable', '=', True)
|
||||||
])
|
])
|
||||||
expense, = Account.search([
|
expense, = Account.search([
|
||||||
('kind', '=', 'expense'),
|
('type.expense', '=', True)
|
||||||
])
|
])
|
||||||
payable, = Account.search([
|
payable, = Account.search([
|
||||||
('kind', '=', 'payable'),
|
('type.payable', '=', True)
|
||||||
])
|
])
|
||||||
project1, = AnalyticAccount.search([
|
project1, = AnalyticAccount.search([
|
||||||
('code', '=', 'P1'),
|
('code', '=', 'P1'),
|
||||||
|
@ -256,16 +262,16 @@ class TestCase(ModuleTestCase):
|
||||||
('code', '=', 'EXP'),
|
('code', '=', 'EXP'),
|
||||||
])
|
])
|
||||||
revenue, = Account.search([
|
revenue, = Account.search([
|
||||||
('kind', '=', 'revenue'),
|
('type.expense', '=', True),
|
||||||
])
|
])
|
||||||
receivable, = Account.search([
|
receivable, = Account.search([
|
||||||
('kind', '=', 'receivable'),
|
('type.receivable', '=', True),
|
||||||
])
|
])
|
||||||
expense, = Account.search([
|
expense, = Account.search([
|
||||||
('kind', '=', 'expense'),
|
('type.expense', '=', True),
|
||||||
])
|
])
|
||||||
payable, = Account.search([
|
payable, = Account.search([
|
||||||
('kind', '=', 'payable'),
|
('type.payable', '=', True),
|
||||||
])
|
])
|
||||||
project1, = AnalyticAccount.search([
|
project1, = AnalyticAccount.search([
|
||||||
('code', '=', 'P1'),
|
('code', '=', 'P1'),
|
||||||
|
@ -326,7 +332,7 @@ class TestCase(ModuleTestCase):
|
||||||
# Create some analytic lines on draft move and check how their
|
# Create some analytic lines on draft move and check how their
|
||||||
# state change
|
# state change
|
||||||
expense_move_line = [l for l in draft_move.lines
|
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([{
|
line1, = AnalyticLine.create([{
|
||||||
'credit': Decimal(0),
|
'credit': Decimal(0),
|
||||||
'debit': Decimal(600),
|
'debit': Decimal(600),
|
||||||
|
@ -389,10 +395,13 @@ class TestCase(ModuleTestCase):
|
||||||
('code', '=', 'REV'),
|
('code', '=', 'REV'),
|
||||||
])
|
])
|
||||||
other, = Account.search([
|
other, = Account.search([
|
||||||
('kind', '=', 'other'),
|
('type.revenue', '=', False),
|
||||||
|
('type.receivable', '=', False),
|
||||||
|
('type.expense', '=', False),
|
||||||
|
('type.payable', '=', False),
|
||||||
], limit=1)
|
], limit=1)
|
||||||
receivable, = Account.search([
|
receivable, = Account.search([
|
||||||
('kind', '=', 'receivable'),
|
('type.receivable', '=', True),
|
||||||
])
|
])
|
||||||
project1, = AnalyticAccount.search([
|
project1, = AnalyticAccount.search([
|
||||||
('code', '=', 'P1'),
|
('code', '=', 'P1'),
|
||||||
|
|
Loading…
Reference in a new issue