Modularize code in GroupLines wizard

issue8794
review268331003
This commit is contained in:
Nicolas Évrard committed 2019-11-25 12:08:39 +01:00
1 parent 62e3fb2013
commit e62f18b642
2 files changed
+22 -8

No files matched your search

+2
View File
@@ -1,3 +1,5 @@
* Modularize code in GroupLines wizard
Version 5.4.0 - 2019-11-04
* Bug fixes (see mercurial logs for details)
* Add default customer and supplier tax rule
+20 -8
View File
@@ -1881,9 +1881,20 @@ class GroupLines(Wizard):
Line = pool.get('account.move.line')
lines = Line.browse(Transaction().context['active_ids'])
grouping = self.grouping(lines)
move, balance_line = self._group_lines(lines)
move, balance_line = self.get_move(lines, grouping)
return 'end'
def _group_lines(self, lines, date=None):
move, balance_line = self.group_lines(lines, self.start.journal, date)
move.description = self.start.description
return move, balance_line
@classmethod
def group_lines(cls, lines, journal, date=None):
grouping = cls.grouping(lines)
move, balance_line = cls.get_move(lines, grouping, journal, date)
move.save()
to_reconcile = defaultdict(list)
@@ -1897,7 +1908,7 @@ class GroupLines(Wizard):
for lines in to_reconcile.values():
Line.reconcile(lines, delegate_to=balance_line)
return 'end'
return move, balance_line
@classmethod
def grouping(cls, lines):
@@ -1943,7 +1954,8 @@ class GroupLines(Wizard):
def allow_grouping(cls, account):
return account.type.payable or account.type.receivable
def get_move(self, lines, grouping, date=None):
@classmethod
def get_move(cls, lines, grouping, journal, date=None):
pool = Pool()
Date = pool.get('ir.date')
Move = pool.get('account.move')
@@ -1957,8 +1969,7 @@ class GroupLines(Wizard):
move = Move()
move.date = date
move.period = period
move.journal = self.start.journal
move.description = self.start.description
move.journal = journal
accounts = {a: 0 for a in grouping['accounts']}
amount_second_currency = 0
@@ -1971,7 +1982,7 @@ class GroupLines(Wizard):
maturity_dates[line.account], line.maturity_date)
else:
maturity_dates[line.account] = line.maturity_date
line = self._counterpart_line(line)
line = cls._counterpart_line(line)
accounts[line.account] += line.debit - line.credit
if line.amount_second_currency:
amount_second_currency += line.amount_second_currency
@@ -2008,7 +2019,8 @@ class GroupLines(Wizard):
balance_line.maturity_date = maturity_dates[balance_line.account]
return move, balance_line
def _counterpart_line(self, line):
@classmethod
def _counterpart_line(cls, line):
pool = Pool()
Line = pool.get('account.move.line')