This question has been flagged
1143 Views

Hi all,


I am triggering a stock move via the API in order to update the stock quantity of a batch.


Now, whenever the stock is updated, I want to trigger a function to sync this change to another website. However, with my current solution, the sync is triggered before the quantity of the lot is updated.


This is the code I am using right now. Since StockMove.write() is called multiple times, I am checking with the _last_id attribute, to make sure it syncs only once. However, as stated before, it is too early.

```

from odoo.addons.stock.models.stock_move import StockMove as OStockMove

class StockMove(models.Model):
_inherit = "stock.move"
_last_id = 0

def write(self, vals):
res = OStockMove.write(self, vals)
if self.lot_ids:
if self._last_id != self.id:
type(self)._last_id = self.id
batch_sync(self.lot_ids)
_logger.error(str(self.is_done) + " " + str(self.lot_ids))
return res
```

How can I trigger the sync *after* the stock has been moved?
Avatar
Discard