diff --git a/modules/account/account.py b/modules/account/account.py index 28e82fba82..e61d473c16 100644 --- a/modules/account/account.py +++ b/modules/account/account.py @@ -2409,10 +2409,6 @@ class GeneralLedgerLine(DescriptionOriginMixin, ModelSQL, ModelView): 'get_balance') origin = fields.Reference('Origin', selection='get_origin') description = fields.Char('Description') - move_description_used = fields.Function( - fields.Char("Move Description"), - 'get_move_field', - searcher='search_move_field') amount_second_currency = Monetary( "Amount Second Currency", currency='second_currency', digits='second_currency') @@ -2466,10 +2462,11 @@ class GeneralLedgerLine(DescriptionOriginMixin, ModelSQL, ModelView): 'internal_balance') else: column = (line.debit - line.credit).as_('internal_balance') - elif fname == 'move_description': - column = Column(move, 'description').as_(fname) elif fname == 'party_required': column = Column(account, 'party_required').as_(fname) + elif fname in {'origin', 'description'}: + column = Coalesce( + Column(line, fname), Column(move, fname)).as_(fname) elif (not field_line or fname == 'state' or isinstance(field_line, fields.Function)): @@ -2484,24 +2481,6 @@ class GeneralLedgerLine(DescriptionOriginMixin, ModelSQL, ModelView): ).join(account, condition=line.account == account.id ).select(*columns, where=line_query) - def get_move_field(self, name): - field = getattr(self.__class__, name) - if name.startswith('move_'): - name = name[5:] - value = getattr(self.move, name) - if isinstance(value, ModelSQL): - if field._type == 'reference': - return str(value) - return value.id - return value - - @classmethod - def search_move_field(cls, name, clause): - nested = clause[0][len(name):] - if name.startswith('move_'): - name = name[5:] - return [('move.' + name + nested, *clause[1:])] - def get_currency(self, name): return self.company.currency.id @@ -2511,8 +2490,10 @@ class GeneralLedgerLine(DescriptionOriginMixin, ModelSQL, ModelView): @classmethod def get_origin(cls): - Line = Pool().get('account.move.line') - return Line.get_origin() + pool = Pool() + Move = pool.get('account.move') + Line = pool.get('account.move.line') + return list(set(Move.get_origin()) | set(Line.get_origin())) def get_balance(self, name): pool = Pool() diff --git a/modules/account/general_ledger.fodt b/modules/account/general_ledger.fodt index 27a516da86..28f75b455a 100644 --- a/modules/account/general_ledger.fodt +++ b/modules/account/general_ledger.fodt @@ -910,7 +910,7 @@ <format_currency(line.balance, user.language, company.currency)> - <line.description or ''><line.move_description_used or ''> + <line.description or ''> <getattr(line.origin, 'rec_name', '')> diff --git a/modules/account/view/general_ledger_line_list.xml b/modules/account/view/general_ledger_line_list.xml index 0f1cffc0a5..99284bde9a 100644 --- a/modules/account/view/general_ledger_line_list.xml +++ b/modules/account/view/general_ledger_line_list.xml @@ -6,7 +6,6 @@ this repository contains the full copyright notices and license terms. --> -