Commit Graph

10 Commits

Author SHA1 Message Date
oca-ci
d8f3878f45 [UPD] Update stock_move_auto_assign.pot 2022-11-22 15:07:22 +00:00
OCA-git-bot
70c5c21e72 [UPD] README.rst 2022-11-04 15:59:43 +00:00
oca-ci
c299143ff2 [UPD] Update stock_move_auto_assign.pot 2022-11-04 15:57:30 +00:00
Laurent Mignon (ACSONE)
eb3066af90 [MIG] stock_move_auto_assign: Migration to 16.0 2022-11-03 15:16:30 +01:00
OCA-git-bot
14b9a3c0de [UPD] README.rst 2022-11-03 15:07:32 +01:00
oca-travis
de024a5b84 [UPD] Update stock_move_auto_assign.pot 2022-11-03 15:07:32 +01:00
Tran Thanh Phuc
feb70a55e4 [MIG] stock_move_auto_assign: Migration to 14.0 2022-11-03 15:07:32 +01:00
Guewen Baconnier
9dea80caba Remove @job decorator
Following changes in https://github.com/OCA/queue/pull/274
2022-11-03 15:07:32 +01:00
Guewen Baconnier
e32fefa078 Fix concurrency race condition on picking state
When the 2 last moves of a stock.picking are assigned at the same
time by 2 jobs (different products both available), none of the
transaction will see that it is the last move to be assigned. As a
result, the picking will stay in state "confirmed" even if all its
moves are assigned.

Lock the stock.picking records when we call auto_assign.
If we have many pickings touched for the same product, the lock
can be quite large, so we may have to find a better option.

I could not write a test to exercise this, because we can't have 2
transactions being aware of it, even if we create the picking in demo
data as tests can be run during install.
2022-11-03 15:07:32 +01:00
Guewen Baconnier
be3b4b2857 Add stock_move_auto_assign
Automatically check availability of stock moves when a move is set to "done".

It uses queue jobs to verify the availability in order to have a minimal impact
on the user operations.

The conditions to trigger the check are:

* A move is marked as done
* The destination locations of the move lines are internal
* The move doesn't have successors in a chain of moves

At this point, jobs are generated:

* One job per product
* Any move waiting for stock in a parent (or same) location of the internal
  destination locations from the done move has its availability checked

Only one job is generated for an identical set of (product, locations).
2022-11-03 15:07:32 +01:00