mirror of
https://gitlab.com/datalifeit/trytond-account_payment_amount_store
synced 2023-12-14 06:42:58 +01:00
Improve performance.
This commit refs #22848
(cherry picked from commit a25399ae99
)
This commit is contained in:
parent
5847a04a51
commit
b913d023bd
13
account.py
13
account.py
|
@ -68,15 +68,15 @@ class MoveLine(metaclass=PoolMeta):
|
|||
|
||||
query = (table
|
||||
.join(payment, type_='LEFT', condition=(
|
||||
(table.id == payment.line) &
|
||||
(payment.state != 'failed')))
|
||||
(table.id == payment.line)
|
||||
& (payment.state != 'failed')))
|
||||
.join(account, condition=table.account == account.id)
|
||||
.join(account_type, condition=account.type == account_type.id)
|
||||
.select(
|
||||
amount.as_('amount'),
|
||||
where=(
|
||||
(account_type.payable | account_type.receivable) &
|
||||
(table.id == sql_table.id)),
|
||||
(account_type.payable | account_type.receivable)
|
||||
& (table.id == sql_table.id)),
|
||||
group_by=(table.id, table.second_currency)
|
||||
))
|
||||
cursor.execute(*sql_table.update(
|
||||
|
@ -93,10 +93,13 @@ class MoveLine(metaclass=PoolMeta):
|
|||
lines = cls.browse(lines)
|
||||
lines_amounts = cls.get_payment_amount(lines, None)
|
||||
lines2ids = {line.id: line for line in lines}
|
||||
to_save = []
|
||||
for line_id, amount in lines_amounts.items():
|
||||
move_line = lines2ids[line_id]
|
||||
move_line.payment_amount_store = amount
|
||||
move_line.save()
|
||||
to_save.append(move_line)
|
||||
if to_save:
|
||||
cls.save(to_save)
|
||||
|
||||
@classmethod
|
||||
def search_payment_amount(cls, name, clause):
|
||||
|
|
Loading…
Reference in a new issue