diff --git a/modules/incoterm/stock.py b/modules/incoterm/stock.py index a842da3148..67d0c67bfa 100644 --- a/modules/incoterm/stock.py +++ b/modules/incoterm/stock.py @@ -46,13 +46,11 @@ class ShipmentIn_Purchase(metaclass=PoolMeta): def receive(cls, shipments): pool = Pool() Warning = pool.get('res.user.warning') - PurchaseLine = pool.get('purchase.line') for shipment in shipments: if shipment.incoterm: incoterms = { - move.origin.purchase.incoterm for move in shipment.moves - if isinstance(move.origin, PurchaseLine) - and move.state != 'cancelled'} + move.purchase.incoterm for move in shipment.moves + if move.state != 'cancelled' and move.purchase} if {shipment.incoterm} != incoterms: incoterms.discard(shipment.incoterm) origin_incoterms = ', '.join( @@ -99,13 +97,11 @@ class ShipmentOut_Sale(metaclass=PoolMeta): def wait(cls, shipments, moves=None): pool = Pool() Warning = pool.get('res.user.warning') - SaleLine = pool.get('sale.line') for shipment in shipments: if shipment.incoterm: incoterms = { - move.origin.sale.incoterm for move in shipment.moves - if isinstance(move.origin, SaleLine) - and move.state != 'cancelled'} + move.sale.incoterm for move in shipment.moves + if move.state != 'cancelled' and move.sale} if {shipment.incoterm} != incoterms: incoterms.discard(shipment.incoterm) origin_incoterms = ', '.join( diff --git a/modules/purchase/stock.py b/modules/purchase/stock.py index e38a404473..effd0eeadd 100644 --- a/modules/purchase/stock.py +++ b/modules/purchase/stock.py @@ -54,11 +54,9 @@ class ShipmentIn(metaclass=PoolMeta): @ModelView.button @Workflow.transition('draft') def draft(cls, shipments): - PurchaseLine = Pool().get('purchase.line') for shipment in shipments: for move in shipment.incoming_moves: - if (move.state == 'cancelled' - and isinstance(move.origin, PurchaseLine)): + if move.state == 'cancelled' and move.purchase: raise AccessError( gettext('purchase.msg_purchase_move_reset_draft', move=move.rec_name)) @@ -93,11 +91,9 @@ class ShipmentInReturn(metaclass=PoolMeta): @ModelView.button @Workflow.transition('draft') def draft(cls, shipments): - PurchaseLine = Pool().get('purchase.line') for shipment in shipments: for move in shipment.moves: - if (move.state == 'cancelled' - and isinstance(move.origin, PurchaseLine)): + if move.state == 'cancelled' and move.purchase: raise AccessError( gettext('purchase.msg_purchase_move_reset_draft', move=move.rec_name)) diff --git a/modules/sale/stock.py b/modules/sale/stock.py index c7b38af286..e81aab4bef 100644 --- a/modules/sale/stock.py +++ b/modules/sale/stock.py @@ -39,11 +39,9 @@ class ShipmentOut(metaclass=PoolMeta): @ModelView.button @Workflow.transition('draft') def draft(cls, shipments): - SaleLine = Pool().get('sale.line') for shipment in shipments: for move in shipment.outgoing_moves: - if (move.state == 'cancelled' - and isinstance(move.origin, SaleLine)): + if move.state == 'cancelled' and move.sale: raise AccessError( gettext('sale.msg_sale_move_reset_draft', move=move.rec_name)) @@ -79,11 +77,9 @@ class ShipmentOutReturn(metaclass=PoolMeta): @ModelView.button @Workflow.transition('draft') def draft(cls, shipments): - SaleLine = Pool().get('sale.line') for shipment in shipments: for move in shipment.incoming_moves: - if (move.state == 'cancelled' - and isinstance(move.origin, SaleLine)): + if move.state == 'cancelled' and move.sale: raise AccessError( gettext('sale.msg_sale_move_reset_draft', move=move.rec_name)) diff --git a/modules/sale_advance_payment/stock.py b/modules/sale_advance_payment/stock.py index 052edf96b8..8ddbc6c34a 100644 --- a/modules/sale_advance_payment/stock.py +++ b/modules/sale_advance_payment/stock.py @@ -17,12 +17,11 @@ class ShipmentOut(metaclass=PoolMeta): def pack(cls, shipments): pool = Pool() Sale = pool.get('sale.sale') - SaleLine = pool.get('sale.line') - sales = {move.origin.sale - for shipment in shipments for move in shipment.moves - if isinstance(move.origin, SaleLine)} - for sale in Sale.browse([s.id for s in sales]): + sales = { + move.sale for shipment in shipments for move in shipment.moves + if move.sale} + for sale in Sale.browse(sales): if sale.shipping_blocked: raise ShippingBlocked( gettext('sale_advance_payment.msg_shipping_blocked',