Remove centralised from account.journal
review853002 issue3071
This commit is contained in:
@@ -1,3 +1,5 @@
|
||||
* Remove centralised counterpart option and functionality
|
||||
|
||||
Version 2.8.0 - 2013-04-22
|
||||
* Bug fixes (see mercurial logs for details)
|
||||
* Make period's post_move_sequence optional and use fiscal year's one if empty
|
||||
|
||||
@@ -43,7 +43,6 @@ def register():
|
||||
Move,
|
||||
Reconciliation,
|
||||
Line,
|
||||
Move2,
|
||||
OpenJournalAsk,
|
||||
ReconcileLinesWriteOff,
|
||||
UnreconcileLinesStart,
|
||||
|
||||
+1
-5
@@ -96,14 +96,10 @@ A Journal contains the following fields:
|
||||
- Active: A checkbox that allow to disable the tax.
|
||||
- View: Defines how the moves lines on this journal should be
|
||||
displayed.
|
||||
- Centralised counterpart: If checked all created lines are linked to
|
||||
the last open movement for the current journal and the current
|
||||
period.
|
||||
- Update Posted: if true it allow to upate posted moves of this
|
||||
journal.
|
||||
- Default Credit Account, Default Debit Account: Used as default
|
||||
accounts on move lines for centralised journals and for journal of
|
||||
*Cash* type.
|
||||
accounts on move lines for journals of *Cash* type.
|
||||
- Type: By default take one of the following values: *General*,
|
||||
*Revenue*, *Expense*, *Cash*, *Situation*.
|
||||
|
||||
|
||||
+4
-11
@@ -93,7 +93,6 @@ class Journal(ModelSQL, ModelView):
|
||||
active = fields.Boolean('Active', select=True)
|
||||
type = fields.Selection('get_types', 'Type', required=True)
|
||||
view = fields.Many2One('account.journal.view', 'View')
|
||||
centralised = fields.Boolean('Centralised counterpart')
|
||||
update_posted = fields.Boolean('Allow cancelling moves')
|
||||
sequence = fields.Property(fields.Many2One('ir.sequence', 'Sequence',
|
||||
domain=[('code', '=', 'account.journal')],
|
||||
@@ -107,22 +106,20 @@ class Journal(ModelSQL, ModelView):
|
||||
('company', '=', Eval('context', {}).get('company', 0)),
|
||||
],
|
||||
states={
|
||||
'required': ((Eval('centralised', False)
|
||||
| (Eval('type') == 'cash'))
|
||||
'required': ((Eval('type') == 'cash')
|
||||
& Bool(Eval('context', {}).get('company', 0))),
|
||||
'invisible': ~Eval('context', {}).get('company', 0),
|
||||
}, depends=['type', 'centralised']))
|
||||
}, depends=['type']))
|
||||
debit_account = fields.Property(fields.Many2One('account.account',
|
||||
'Default Debit Account', domain=[
|
||||
('kind', '!=', 'view'),
|
||||
('company', '=', Eval('context', {}).get('company', 0)),
|
||||
],
|
||||
states={
|
||||
'required': ((Eval('centralised', False)
|
||||
| (Eval('type') == 'cash'))
|
||||
'required': ((Eval('type') == 'cash')
|
||||
& Bool(Eval('context', {}).get('company', 0))),
|
||||
'invisible': ~Eval('context', {}).get('company', 0),
|
||||
}, depends=['type', 'centralised']))
|
||||
}, depends=['type']))
|
||||
|
||||
@classmethod
|
||||
def __setup__(cls):
|
||||
@@ -150,10 +147,6 @@ class Journal(ModelSQL, ModelView):
|
||||
def default_active():
|
||||
return True
|
||||
|
||||
@staticmethod
|
||||
def default_centralised():
|
||||
return False
|
||||
|
||||
@staticmethod
|
||||
def default_update_posted():
|
||||
return False
|
||||
|
||||
@@ -17,7 +17,7 @@ from trytond.pool import Pool, PoolMeta
|
||||
from trytond.rpc import RPC
|
||||
from trytond.tools import reduce_ids
|
||||
|
||||
__all__ = ['Move', 'Reconciliation', 'Line', 'Move2', 'OpenJournalAsk',
|
||||
__all__ = ['Move', 'Reconciliation', 'Line', 'OpenJournalAsk',
|
||||
'OpenJournal', 'OpenAccount', 'ReconcileLinesWriteOff', 'ReconcileLines',
|
||||
'UnreconcileLinesStart', 'UnreconcileLines', 'OpenReconcileLinesStart',
|
||||
'OpenReconcileLines', 'FiscalYearLine', 'FiscalYear2',
|
||||
@@ -79,10 +79,6 @@ class Move(ModelSQL, ModelView):
|
||||
'"%(move)s" to draft in journal "%(journal)s".'),
|
||||
'modify_posted_move': ('You can not modify move "%s" because '
|
||||
'it is already posted.'),
|
||||
'period_centralized_journal': ('Move "%(move)s" cannot be '
|
||||
'created because there is already a move in journal '
|
||||
'"%(journal)s" and you cannot create more than one move '
|
||||
'per period in a centralized journal.'),
|
||||
'company_in_move': ('You can not create lines on accounts'
|
||||
'of different companies in move "%s".'),
|
||||
'date_outside_period': ('You can not create move "%(move)s" '
|
||||
@@ -172,23 +168,9 @@ class Move(ModelSQL, ModelView):
|
||||
def validate(cls, moves):
|
||||
super(Move, cls).validate(moves)
|
||||
for move in moves:
|
||||
move.check_centralisation()
|
||||
move.check_company()
|
||||
move.check_date()
|
||||
|
||||
def check_centralisation(self):
|
||||
if self.journal.centralised:
|
||||
moves = self.search([
|
||||
('period', '=', self.period.id),
|
||||
('journal', '=', self.journal.id),
|
||||
('state', '!=', 'posted'),
|
||||
], limit=2)
|
||||
if len(moves) > 1:
|
||||
self.raise_user_error('period_centralized_journal', {
|
||||
'move': self.rec_name,
|
||||
'journal': self.journal.rec_name,
|
||||
})
|
||||
|
||||
def check_company(self):
|
||||
company_id = -1
|
||||
for line in self.lines:
|
||||
@@ -245,15 +227,6 @@ class Move(ModelSQL, ModelView):
|
||||
vals['number'] = Sequence.get_id(journal.sequence.id)
|
||||
|
||||
moves = super(Move, cls).create(vlist)
|
||||
for move in moves:
|
||||
if move.journal.centralised:
|
||||
line, = MoveLine.create([{
|
||||
'account': move.journal.credit_account.id,
|
||||
'move': move.id,
|
||||
}])
|
||||
cls.write([move], {
|
||||
'centralised_line': line.id,
|
||||
})
|
||||
cls.validate_move(moves)
|
||||
return moves
|
||||
|
||||
@@ -289,7 +262,7 @@ class Move(ModelSQL, ModelView):
|
||||
@classmethod
|
||||
def validate_move(cls, moves):
|
||||
'''
|
||||
Validate balanced move and centralise it if in centralised journal
|
||||
Validate balanced move
|
||||
'''
|
||||
pool = Pool()
|
||||
MoveLine = pool.get('account.move.line')
|
||||
@@ -335,39 +308,7 @@ class Move(ModelSQL, ModelView):
|
||||
draft_lines = MoveLine.browse(
|
||||
list(move2draft_lines.get(move.id, [])))
|
||||
if not company.currency.is_zero(amount):
|
||||
if not move.journal.centralised:
|
||||
draft_moves.append(move.id)
|
||||
else:
|
||||
if not move.centralised_line:
|
||||
centralised_amount = - amount
|
||||
else:
|
||||
centralised_amount = move.centralised_line.debit \
|
||||
- move.centralised_line.credit \
|
||||
- amount
|
||||
if centralised_amount >= Decimal('0.0'):
|
||||
debit = centralised_amount
|
||||
credit = Decimal('0.0')
|
||||
account_id = move.journal.debit_account.id
|
||||
else:
|
||||
debit = Decimal('0.0')
|
||||
credit = - centralised_amount
|
||||
account_id = move.journal.credit_account.id
|
||||
if not move.centralised_line:
|
||||
centralised_line, = MoveLine.create([{
|
||||
'debit': debit,
|
||||
'credit': credit,
|
||||
'account': account_id,
|
||||
'move': move.id,
|
||||
}])
|
||||
cls.write([move], {
|
||||
'centralised_line': centralised_line.id,
|
||||
})
|
||||
else:
|
||||
MoveLine.write([move.centralised_line], {
|
||||
'debit': debit,
|
||||
'credit': credit,
|
||||
'account': account_id,
|
||||
})
|
||||
draft_moves.append(move.id)
|
||||
continue
|
||||
if not draft_lines:
|
||||
continue
|
||||
@@ -1296,15 +1237,6 @@ class Line(ModelSQL, ModelView):
|
||||
if not journal_id:
|
||||
cls.raise_user_error('no_journal')
|
||||
journal = Journal(journal_id)
|
||||
if journal.centralised:
|
||||
moves = Move.search([
|
||||
('period', '=', vals.get('period')
|
||||
or Transaction().context.get('period')),
|
||||
('journal', '=', journal_id),
|
||||
('state', '!=', 'posted'),
|
||||
], limit=1)
|
||||
if moves:
|
||||
vals['move'] = moves[0].id
|
||||
if not vals.get('move'):
|
||||
vals['move'] = Move.create([{
|
||||
'period': (vals.get('period')
|
||||
@@ -1445,12 +1377,6 @@ class Line(ModelSQL, ModelView):
|
||||
}])[0]
|
||||
|
||||
|
||||
class Move2:
|
||||
__name__ = 'account.move'
|
||||
centralised_line = fields.Many2One('account.move.line', 'Centralised Line',
|
||||
readonly=True)
|
||||
|
||||
|
||||
class OpenJournalAsk(ModelView):
|
||||
'Open Journal Ask'
|
||||
__name__ = 'account.move.open_journal.ask'
|
||||
|
||||
@@ -21,8 +21,6 @@ this repository contains the full copyright notices and license terms. -->
|
||||
<field name="debit_account"/>
|
||||
<label name="credit_account"/>
|
||||
<field name="credit_account"/>
|
||||
<label name="centralised"/>
|
||||
<field name="centralised"/>
|
||||
<newline/>
|
||||
<label name="update_posted"/>
|
||||
<field name="update_posted"/>
|
||||
|
||||
Reference in New Issue
Block a user