From 182f1ede57bd342bfb0b2fedc553078860fb7022 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 --- modules/stock_supply/purchase_request.py | 5 ++++- modules/stock_supply/shipment.py | 12 ++++++++---- modules/stock_supply_production/production.py | 5 ++++- 3 files changed, 16 insertions(+), 6 deletions(-) diff --git a/modules/stock_supply/purchase_request.py b/modules/stock_supply/purchase_request.py index b1f65c3d2e..6c206f0295 100644 --- a/modules/stock_supply/purchase_request.py +++ b/modules/stock_supply/purchase_request.py @@ -56,6 +56,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: @@ -66,7 +68,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 = {} @@ -140,6 +142,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 25bc648b7a..fda9402bde 100644 --- a/modules/stock_supply/shipment.py +++ b/modules/stock_supply/shipment.py @@ -28,26 +28,30 @@ 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 if warehouses is None: warehouses = Location.search([ ('type', '=', 'warehouse'), ]) - 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'), - ]) + ('type', '=', 'internal'), + ('company', '=', company.id) + ]) order_points = [ op for op in order_points if op.location.warehouse in warehouses] id2product = {} @@ -157,7 +161,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 8862b75849..5c0fdd8578 100644 --- a/modules/stock_supply_production/production.py +++ b/modules/stock_supply_production/production.py @@ -54,10 +54,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: @@ -73,7 +76,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 = {}