diff --git a/modules/purchase/invoice.py b/modules/purchase/invoice.py index 10e51c4f7a..90e4fa3222 100644 --- a/modules/purchase/invoice.py +++ b/modules/purchase/invoice.py @@ -6,7 +6,7 @@ from trytond.i18n import gettext from trytond.model import ModelView, Workflow, fields from trytond.model.exceptions import AccessError from trytond.pool import Pool, PoolMeta -from trytond.pyson import Eval +from trytond.pyson import Bool, Eval, If from trytond.tools import cached_property from trytond.transaction import Transaction, without_check_access @@ -110,6 +110,13 @@ class InvoiceLine(metaclass=PoolMeta): cls.origin.domain = {} cls.origin.domain['purchase.line'] = [ ('type', '=', Eval('type')), + If(Bool(Eval('_parent_invoice')), + If(Eval('_parent_invoice', {}).get('type') != 'in', + ('id', '=', -1), + ()), + If(Eval('invoice_type') != 'in', + ('id', '=', -1), + ())), ] @cached_property diff --git a/modules/purchase/invoice.xml b/modules/purchase/invoice.xml index 11ecbf138a..6c745db59d 100644 --- a/modules/purchase/invoice.xml +++ b/modules/purchase/invoice.xml @@ -9,7 +9,7 @@ this repository contains the full copyright notices and license terms. --> account.invoice account.invoice diff --git a/modules/sale_subscription/invoice.py b/modules/sale_subscription/invoice.py index 77e9906bd6..c5404541ee 100644 --- a/modules/sale_subscription/invoice.py +++ b/modules/sale_subscription/invoice.py @@ -1,11 +1,27 @@ # This file is part of Tryton. The COPYRIGHT file at the top level of # this repository contains the full copyright notices and license terms. from trytond.pool import Pool, PoolMeta +from trytond.pyson import Bool, Eval, If class InvoiceLine(metaclass=PoolMeta): __name__ = 'account.invoice.line' + @classmethod + def __setup__(cls): + super().__setup__() + if not cls.origin.domain: + cls.origin.domain = {} + cls.origin.domain['sale.subscription.line'] = [ + If(Bool(Eval('_parent_invoice')), + If(Eval('_parent_invoice', {}).get('type') != 'out', + ('id', '=', -1), + ()), + If(Eval('invoice_type') != 'out', + ('id', '=', -1), + ())), + ] + @property def origin_name(self): pool = Pool() diff --git a/modules/sale_subscription/subscription.xml b/modules/sale_subscription/subscription.xml index 7d539a6ee2..e9d7e997ef 100644 --- a/modules/sale_subscription/subscription.xml +++ b/modules/sale_subscription/subscription.xml @@ -218,7 +218,7 @@ this repository contains the full copyright notices and license terms. --> account.invoice