diff --git a/modules/account_invoice/invoice.py b/modules/account_invoice/invoice.py index c4b2868e52..ccefc9ed8b 100644 --- a/modules/account_invoice/invoice.py +++ b/modules/account_invoice/invoice.py @@ -2567,7 +2567,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 db8ab4293a..eec22e0a8d 100644 --- a/modules/product_kit/stock.py +++ b/modules/product_kit/stock.py @@ -145,7 +145,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 @@ -227,7 +227,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 1b5592ad79..8bd41c5a85 100644 --- a/modules/purchase/invoice.py +++ b/modules/purchase/invoice.py @@ -149,7 +149,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 050764f47e..a74f22576f 100644 --- a/modules/purchase/stock.py +++ b/modules/purchase/stock.py @@ -225,7 +225,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 5e45bcbdb6..211a67e03b 100644 --- a/modules/sale/invoice.py +++ b/modules/sale/invoice.py @@ -136,7 +136,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 b1f458e74f..026e66ffd8 100644 --- a/modules/sale/stock.py +++ b/modules/sale/stock.py @@ -217,7 +217,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_advance_payment/account.py b/modules/sale_advance_payment/account.py index 9262a7150f..808ec56675 100644 --- a/modules/sale_advance_payment/account.py +++ b/modules/sale_advance_payment/account.py @@ -86,7 +86,7 @@ class InvoiceLine(metaclass=PoolMeta): pool = Pool() Condition = pool.get('sale.advance_payment.condition') name = super().origin_name - if isinstance(self.origin, Condition): + if isinstance(self.origin, Condition) 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 3f077702a0..1bb24d8e9f 100644 --- a/modules/stock/move.py +++ b/modules/stock/move.py @@ -632,7 +632,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 @without_check_access diff --git a/modules/stock_consignment/account.py b/modules/stock_consignment/account.py index 4aaf66907d..142e566440 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