From 8be8c2b27f9280190ee7cd3f22a812dfd5407d0b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Thu, 21 Mar 2013 18:37:14 +0100 Subject: [PATCH] Improve General Ledger - Use cumulate balance - Show move description and origin - Show move number issue2880 review721002 --- account.py | 8 ++++++-- general_ledger.odt | Bin 14096 -> 14809 bytes 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/account.py b/account.py index db6b6641e7..9bab2aea6d 100644 --- a/account.py +++ b/account.py @@ -1200,7 +1200,6 @@ class GeneralLedger(Report): end_periods, data['posted']) for account in (set(accounts) - set(account2lines)): accounts.remove(account) - account_id2lines = None account_id2lines = cls.lines(accounts, list(set(end_periods).difference(set(start_periods))), @@ -1248,10 +1247,15 @@ class GeneralLedger(Report): balance += line.debit - line.credit res[account.id].append({ 'date': line.date, + 'move': line.move.rec_name, 'debit': line.debit, 'credit': line.credit, 'balance': balance, - 'name': line.description, + 'description': '\n'.join( + (line.move.description or '', + line.description or '')).strip(), + 'origin': (line.move.origin.rec_name + if line.move.origin else ''), 'state': state_selections.get(line.move.state, line.move.state), }) diff --git a/general_ledger.odt b/general_ledger.odt index e66c5f200a0eeb2afcf98204dd8a0d15646e8e6c..60633c52fb2c69f2fb691382e5c468af14072d54 100644 GIT binary patch literal 14809 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�-v!K`c2A^KUm(8-8G7 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푹i6DCh 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