From e77015011c90c377fa2851bf2ae69ccc173d6dcf Mon Sep 17 00:00:00 2001 From: wan Date: Thu, 6 Feb 2020 15:14:36 +0000 Subject: [PATCH] [FIX] account: find reference move for sequence domain We only want journal entries with an actual sequence to be used as reference, otherwise we can't deduce the reset periodicity of the journal. closes odoo/odoo#44833 X-original-commit: a57a0edae27a93aadf8fe8c95ae45ab91ec9aa31 Signed-off-by: wan --- addons/account/models/account_move.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/addons/account/models/account_move.py b/addons/account/models/account_move.py index 5f8a35cc18e..2047ffa9529 100644 --- a/addons/account/models/account_move.py +++ b/addons/account/models/account_move.py @@ -952,7 +952,8 @@ class AccountMove(models.Model): param = {'journal_id': self.journal_id.id} if not relaxed: - reference_move = self.search([('journal_id', '=', self.journal_id.id), ('date', '<=', self.date), ('id', '!=', self.id or self._origin.id)], order='date desc', limit=1) or self.search([('journal_id', '=', self.journal_id.id), ('id', '!=', self.id or self._origin.id)], order='date asc', limit=1) + domain = [('journal_id', '=', self.journal_id.id), ('id', '!=', self.id or self._origin.id), ('name', 'not in', ('/', False))] + reference_move = self.search(domain + [('date', '<=', self.date)], order='date desc', limit=1) or self.search(domain, order='date asc', limit=1) sequence_number_reset = self._deduce_sequence_number_reset(reference_move.name) if sequence_number_reset == 'year': where_string += " AND date_trunc('year', date) = date_trunc('year', %(date)s) " @@ -974,7 +975,8 @@ class AccountMove(models.Model): # Try to find a pattern already used by relaxing a domain. If we are here, the domain non relaxed should return nothing. last_sequence = self._get_last_sequence(relaxed=True) if last_sequence: - reference_move = self.search([('journal_id', '=', self.journal_id.id), ('date', '<=', self.date), ('id', '!=', self.id or self._origin.id)], order='date asc', limit=1) or self.search([('journal_id', '=', self.journal_id.id), ('id', '!=', self.id or self._origin.id)], order='date desc', limit=1) + domain = [('journal_id', '=', self.journal_id.id), ('id', '!=', self.id or self._origin.id), ('name', 'not in', ('/', False))] + reference_move = self.search(domain + [('date', '<=', self.date)], order='date desc', limit=1) or self.search(domain, order='date asc', limit=1) sequence_number_reset = self._deduce_sequence_number_reset(reference_move.name) if sequence_number_reset == 'year': sequence = re.match(self._sequence_yearly_regex, last_sequence)