[IMP] account: allow override

Extract the move creation into a different method to allow override.
In case the date or journal needs to be modified.

Closes #15179
This commit is contained in:
Cédric Pigeon (ACSONE)
2017-01-24 18:15:46 +01:00
committed by Martin Trigaux
parent 28b8b9ac37
commit b307514eca
+17 -9
View File
@@ -215,20 +215,28 @@ class AccountMove(models.Model):
raise UserError(_("Cannot create unbalanced journal entry."))
return True
@api.multi
def _reverse_move(self, date=None, journal_id=None):
self.ensure_one()
reversed_move = self.copy(default={
'date': date,
'journal_id': journal_id.id if journal_id else self.journal_id.id,
'ref': _('reversal of: ') + self.name})
for acm_line in reversed_move.line_ids:
acm_line.with_context(check_move_validity=False).write({
'debit': acm_line.credit,
'credit': acm_line.debit,
'amount_currency': -acm_line.amount_currency
})
return reversed_move
@api.multi
def reverse_moves(self, date=None, journal_id=None):
date = date or fields.Date.today()
reversed_moves = self.env['account.move']
for ac_move in self:
reversed_move = ac_move.copy(default={'date': date,
'journal_id': journal_id.id if journal_id else ac_move.journal_id.id,
'ref': _('reversal of: ') + ac_move.name})
for acm_line in reversed_move.line_ids:
acm_line.with_context(check_move_validity=False).write({
'debit': acm_line.credit,
'credit': acm_line.debit,
'amount_currency': -acm_line.amount_currency
})
reversed_move = ac_move._reverse_move(date=date,
journal_id=journal_id)
reversed_moves |= reversed_move
if reversed_moves:
reversed_moves._post_validate()