Skip to content
Snippets Groups Projects
Commit e2efec8e authored by Damien Bouvy's avatar Damien Bouvy Committed by Lucas Perais
Browse files

[FIX] pos: reconciliation and performance issues (#24610)

Before this commit, the complete list of orders of the pos session
was processed through the reconciliation mechanism to check if an
automatic reconciliation was possible (introduced in a controversial
'bug fix' at fe70f071, itself a backport of a master commit at
a2319b43). The goal of this auto-reconciliation was to avoid potentially
silent and numerous customer statements that could be reconciled
automatically.

This is mostly useless in a lot of cases, since a lot of users do not
set any partner_id value on the pos order - there is nothing useful to
reconcile. Going through the whole list of orders is time-wasting
(especially since the reconciliation method does not scale well).

Combine this with users who do not close their POS session often enough
and closing a session can suddenly take up to several hours to process
instead of several seconds with practically no obvious gain.

After this commit, only orders which have a partner set on them will be
auto-reconciled.

opw-1818838 and opw-1817172
parent c25b68f3
No related branches found
No related tags found
No related merge requests found
......@@ -29,8 +29,8 @@ class PosSession(models.Model):
if order.state not in ('paid'):
raise UserError(_("You cannot confirm all orders of this session, because they have not the 'paid' status"))
order.action_pos_order_done()
orders = session.order_ids.filtered(lambda order: order.state in ['invoiced', 'done'])
orders.sudo()._reconcile_payments()
orders_to_reconcile = session.order_ids.filtered(lambda order: order.state in ['invoiced', 'done'] and order.partner_id)
orders_to_reconcile.sudo()._reconcile_payments()
config_id = fields.Many2one(
'pos.config', string='Point of Sale',
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment