[FIX] point_of_sale: lost pos orders on IntegrityError
This revision is similar to
605b94e64c
except that instead of an OperationalError
(e.g. a conccurent update),
this is an IntegrityError which is raised,
an sql constraint which is not met,
e.g. a unique or required constraint.
In the case of this opw,
this is the picking name unique constraint
which was not met,
the picking sequence number has somehow been re-used.
Both
`psycopg2.OperationalError`
and
`psycopg2.IntegrityError`
inherits from
`psycopg2.DatabaseError`
We therefore choose to use this Exception class,
to include all kind of psycopg2 exceptions that prevent
the transaction to be committed.
opw-1965679
closes odoo/odoo#32577
Signed-off-by: Denis Ledoux <beledouxdenis@users.noreply.github.com>
This commit is contained in:
@@ -615,7 +615,7 @@ class PosOrder(models.Model):
|
||||
|
||||
try:
|
||||
pos_order.action_pos_order_paid()
|
||||
except psycopg2.OperationalError:
|
||||
except psycopg2.DatabaseError:
|
||||
# do not hide transactional errors, the order(s) won't be saved!
|
||||
raise
|
||||
except Exception as e:
|
||||
|
||||
Reference in New Issue
Block a user