diff --git a/modules/account_invoice/invoice.py b/modules/account_invoice/invoice.py index 459c43d5a7..80f8d6869f 100644 --- a/modules/account_invoice/invoice.py +++ b/modules/account_invoice/invoice.py @@ -2071,7 +2071,7 @@ class InvoiceLine(sequence_ordered(), ModelSQL, ModelView, TaxableMixin): @property def origin_name(self): - if isinstance(self.origin, self.__class__): + if isinstance(self.origin, self.__class__) and self.origin.id >= 0: return self.origin.invoice.rec_name return self.origin.rec_name if self.origin else None diff --git a/modules/product_kit/stock.py b/modules/product_kit/stock.py index c9a1f9da11..b7627c64c5 100644 --- a/modules/product_kit/stock.py +++ b/modules/product_kit/stock.py @@ -119,7 +119,7 @@ class MoveSale(metaclass=PoolMeta): pool = Pool() SaleLineComponent = pool.get('sale.line.component') name = super().origin_name - if isinstance(self.origin, SaleLineComponent): + if isinstance(self.origin, SaleLineComponent) and self.origin.id >= 0: name = self.origin.line.sale.rec_name return name @@ -211,7 +211,8 @@ class MovePurchase(metaclass=PoolMeta): pool = Pool() PurchaseLineComponent = pool.get('purchase.line.component') name = super().origin_name - if isinstance(self.origin, PurchaseLineComponent): + if (isinstance(self.origin, PurchaseLineComponent) + and self.origin.id >= 0): name = self.origin.line.purchase.rec_name return name diff --git a/modules/purchase/invoice.py b/modules/purchase/invoice.py index 55d463c102..792574e805 100644 --- a/modules/purchase/invoice.py +++ b/modules/purchase/invoice.py @@ -123,7 +123,7 @@ class InvoiceLine(metaclass=PoolMeta): pool = Pool() PurchaseLine = pool.get('purchase.line') name = super(InvoiceLine, self).origin_name - if isinstance(self.origin, PurchaseLine): + if isinstance(self.origin, PurchaseLine) and self.origin.id >= 0: name = self.origin.purchase.rec_name return name diff --git a/modules/purchase/stock.py b/modules/purchase/stock.py index 3531b15fa3..1df1743116 100644 --- a/modules/purchase/stock.py +++ b/modules/purchase/stock.py @@ -221,7 +221,7 @@ class Move(metaclass=PoolMeta): pool = Pool() PurchaseLine = pool.get('purchase.line') name = super(Move, self).origin_name - if isinstance(self.origin, PurchaseLine): + if isinstance(self.origin, PurchaseLine) and self.origin.id >= 0: name = self.origin.purchase.rec_name return name diff --git a/modules/sale/invoice.py b/modules/sale/invoice.py index 5bf42f18a0..5404c9495d 100644 --- a/modules/sale/invoice.py +++ b/modules/sale/invoice.py @@ -121,7 +121,7 @@ class Line(metaclass=PoolMeta): pool = Pool() SaleLine = pool.get('sale.line') name = super().origin_name - if isinstance(self.origin, SaleLine): + if isinstance(self.origin, SaleLine) and self.origin.id >= 0: name = self.origin.sale.rec_name return name diff --git a/modules/sale/stock.py b/modules/sale/stock.py index b461142a04..87a188a519 100644 --- a/modules/sale/stock.py +++ b/modules/sale/stock.py @@ -188,7 +188,7 @@ class Move(metaclass=PoolMeta): pool = Pool() SaleLine = pool.get('sale.line') name = super(Move, self).origin_name - if isinstance(self.origin, SaleLine): + if isinstance(self.origin, SaleLine) and self.origin.id >= 0: name = self.origin.sale.rec_name return name diff --git a/modules/sale_subscription/invoice.py b/modules/sale_subscription/invoice.py index 6b3958c22b..07c8b6ae14 100644 --- a/modules/sale_subscription/invoice.py +++ b/modules/sale_subscription/invoice.py @@ -11,7 +11,7 @@ class InvoiceLine(metaclass=PoolMeta): pool = Pool() SubscriptionLine = pool.get('sale.subscription.line') name = super(InvoiceLine, self).origin_name - if isinstance(self.origin, SubscriptionLine): + if isinstance(self.origin, SubscriptionLine) and self.origin.id >= 0: name = self.origin.subscription.rec_name return name diff --git a/modules/stock/move.py b/modules/stock/move.py index 0fc2a3ddcc..ce51b3275b 100644 --- a/modules/stock/move.py +++ b/modules/stock/move.py @@ -550,7 +550,8 @@ class Move(Workflow, ModelSQL, ModelView): @property def origin_name(self): - return self.origin.rec_name if self.origin else None + if self.origin and self.origin.id >= 0: + return self.origin.rec_name @classmethod def check_period_closed(cls, moves): diff --git a/modules/stock_consignment/account.py b/modules/stock_consignment/account.py index 45af326047..bc03b0c82f 100644 --- a/modules/stock_consignment/account.py +++ b/modules/stock_consignment/account.py @@ -12,6 +12,7 @@ class InvoiceLine(metaclass=PoolMeta): Move = pool.get('stock.move') name = super(InvoiceLine, self).origin_name if (isinstance(self.origin, Move) + and self.origin.id >= 0 and self.origin.shipment): name = self.origin.shipment.rec_name return name