[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 <william-andre@users.noreply.github.com>
This commit is contained in:
wan
2020-02-07 09:34:20 +00:00
parent ea11aae8d6
commit e77015011c
+4 -2
View File
@@ -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)