[FIX] stock: unreserve by changing location on import/location view

This PR

Reverts the change in #105425 as the code is redundant see Discussion
Fixes the issue and explain the details as it doesn't get triggered from
inventory adjustment view but from current stock view in location X.

Steps to reproduce:
- Install inventory
- Activate storage locations
- Allow import in Locations/WH/Stock/Current Stock
- Export the current stock of WH/Stock
- Change the Location in the file to WH/Output
- Import the modified file

In the Location/Current stock view,  the _load_records_write/create methods are bypassing the allowed_fields checks in the def create/write since this check only occurs when _is_inventory_mode() = True. This can cause inconsistencies if there are quants reserved. To solve the problem we set inventory_mode to True so that the method returns True and the checks are triggered (and prevent these inconsistencies).

Task id: 3007499

closes odoo/odoo#106077

X-original-commit: 7240c5b19e9c06fe22a929ca3ec83115c29a5c7f
Related: odoo/enterprise#34153
Signed-off-by: Tiffany Chang <tic@odoo.com>
This commit is contained in:
ノウラ
2022-11-22 11:28:53 +01:00
parent 965132df6f
commit 8dcda00ef8
+5 -1
View File
@@ -287,7 +287,11 @@ class StockQuant(models.Model):
for value in values:
if 'location_id' not in value:
value['location_id'] = warehouse.lot_stock_id.id
return super()._load_records_create(values)
return super(StockQuant, self.with_context(inventory_mode=True))._load_records_create(values)
def _load_records_write(self, values):
""" Only allowed fields should be modified """
return super(StockQuant, self.with_context(inventory_mode=True))._load_records_write(values)
@api.model
def read_group(self, domain, fields, groupby, offset=0, limit=None, orderby=False, lazy=True):