From af374374e59ed06d647024a2d92be1c0fb8df85f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Sun, 15 Jan 2023 00:19:15 +0100 Subject: [PATCH] Do not supply stock with user without company Closes #11501 (grafted from 49e97d3ca0b5bd892e39d77554fbef12e3d5c77e) --HG-- branch : 6.0 --- modules/stock_supply/purchase_request.py | 5 ++++- modules/stock_supply/shipment.py | 8 ++++++-- modules/stock_supply_production/production.py | 5 ++++- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/modules/stock_supply/purchase_request.py b/modules/stock_supply/purchase_request.py index dad209b235..4d54ceca9f 100644 --- a/modules/stock_supply/purchase_request.py +++ b/modules/stock_supply/purchase_request.py @@ -50,6 +50,8 @@ class PurchaseRequest(metaclass=PoolMeta): Location = pool.get('stock.location') User = pool.get('res.user') company = User(Transaction().user).company + if not company: + return if warehouses is None: # fetch warehouses: @@ -60,7 +62,7 @@ class PurchaseRequest(metaclass=PoolMeta): # fetch order points order_points = OrderPoint.search([ ('warehouse_location', '!=', None), - ('company', '=', company.id if company else None), + ('company', '=', company.id), ]) # index them by product product2ops = {} @@ -133,6 +135,7 @@ class PurchaseRequest(metaclass=PoolMeta): products = set(products) reqs = cls.search([ ('state', '=', 'draft'), + ('company', '=', company.id), ('origin', 'like', 'stock.order_point,%'), ]) reqs = [r for r in reqs diff --git a/modules/stock_supply/shipment.py b/modules/stock_supply/shipment.py index f033fab2f3..26dbaadfbe 100644 --- a/modules/stock_supply/shipment.py +++ b/modules/stock_supply/shipment.py @@ -26,20 +26,24 @@ class ShipmentInternal(ModelSQL, ModelView): User = pool.get('res.user') Move = pool.get('stock.move') LeadTime = pool.get('stock.location.lead_time') + company = User(Transaction().user).company + if not company: + return - user_record = User(Transaction().user) today = Date.today() lead_time = LeadTime.get_max_lead_time() if clean: reqs = cls.search([ ('state', '=', 'request'), + ('company', '=', company.id), ]) cls.delete(reqs) # fetch quantities on order points order_points = OrderPoint.search([ ('type', '=', 'internal'), + ('company', '=', company.id), ]) id2product = {} product2op = {} @@ -141,7 +145,7 @@ class ShipmentInternal(ModelSQL, ModelView): product=product, quantity=qty, uom=product.default_uom, - company=user_record.company, + company=company, )) shipment.moves = shipment_moves shipment.planned_start_date = ( diff --git a/modules/stock_supply_production/production.py b/modules/stock_supply_production/production.py index 80881933ca..67fd173571 100644 --- a/modules/stock_supply_production/production.py +++ b/modules/stock_supply_production/production.py @@ -48,10 +48,13 @@ class Production(metaclass=PoolMeta): Date = pool.get('ir.date') User = pool.get('res.user') company = User(Transaction().user).company + if not company: + return if clean: reqs = cls.search([ ('state', '=', 'request'), + ('company', '=', company.id), ('origin', 'like', 'stock.order_point,%'), ]) if warehouses: @@ -67,7 +70,7 @@ class Production(metaclass=PoolMeta): # fetch order points order_points = OrderPoint.search([ ('warehouse_location', '!=', None), - ('company', '=', company.id if company else None), + ('company', '=', company.id), ]) # index them by product product2ops = {}