changeset 4fc449934f98 in modules/purchase:default
details: https://hg.tryton.org/modules/purchase?cmd=changeset;node=4fc449934f98
description:
        Allow product supplier to be deactivated

        issue8062
        review337271002
diffstat:

 CHANGELOG                      |   1 +
 product.py                     |  22 +++++++++++++++-------
 view/product_supplier_form.xml |   8 ++++++--
 3 files changed, 22 insertions(+), 9 deletions(-)

diffs (99 lines):

diff -r 8b4371e8828a -r 4fc449934f98 CHANGELOG
--- a/CHANGELOG Fri Dec 25 17:14:57 2020 +0100
+++ b/CHANGELOG Sun Jan 17 01:24:33 2021 +0100
@@ -1,3 +1,4 @@
+* Allow product supplier to be deactivated
 * Add summary to purchase line list
 * Set payment term and invoice method from last party's purchases
 
diff -r 8b4371e8828a -r 4fc449934f98 product.py
--- a/product.py        Fri Dec 25 17:14:57 2020 +0100
+++ b/product.py        Sun Jan 17 01:24:33 2021 +0100
@@ -6,8 +6,9 @@
 from sql.aggregate import Count
 
 from trytond.i18n import gettext
-from trytond.model import ModelView, ModelSQL, MatchMixin, fields, \
-    sequence_ordered
+from trytond.model import (
+    ModelView, ModelSQL, MatchMixin, DeactivableMixin, sequence_ordered,
+    fields)
 from trytond.pyson import Eval, If, Bool
 from trytond.pool import Pool, PoolMeta
 from trytond.transaction import Transaction
@@ -27,7 +28,10 @@
             'invisible': (~Eval('purchasable', False)
                 | ~Eval('context', {}).get('company')),
             },
-        depends=['purchasable'])
+        domain=[
+            If(~Eval('active'), ('active', '=', False), ()),
+            ],
+        depends=['purchasable', 'active'])
     purchase_uom = fields.Many2One('product.uom', 'Purchase UOM', states={
             'invisible': ~Eval('purchasable'),
             'required': Eval('purchasable', False),
@@ -118,12 +122,13 @@
         'purchase.product_supplier', 'product', "Suppliers",
         domain=[
             ('template', '=', Eval('template')),
+            If(~Eval('active'), ('active', '=', False), ()),
             ],
         states={
             'invisible': (~Eval('purchasable', False)
                 | ~Eval('context', {}).get('company')),
             },
-        depends=['template', 'purchasable'])
+        depends=['template', 'purchasable', 'active'])
     purchase_price_uom = fields.Function(fields.Numeric(
             "Purchase Price", digits=price_digits), 'get_purchase_price_uom')
 
@@ -236,7 +241,8 @@
         return new_products
 
 
-class ProductSupplier(sequence_ordered(), ModelSQL, ModelView, MatchMixin):
+class ProductSupplier(
+        sequence_ordered(), DeactivableMixin, ModelSQL, ModelView, MatchMixin):
     'Product Supplier'
     __name__ = 'purchase.product_supplier'
     template = fields.Many2One(
@@ -246,16 +252,18 @@
             If(Bool(Eval('product')),
                 ('products', '=', Eval('product')),
                 ()),
+            If(Eval('active'), ('active', '=', True), ()),
             ],
-        depends=['product'])
+        depends=['product', 'active'])
     product = fields.Many2One(
         'product.product', "Variant", select=True,
         domain=[
             If(Bool(Eval('template')),
                 ('template', '=', Eval('template')),
                 ()),
+            If(Eval('active'), ('active', '=', True), ()),
             ],
-        depends=['template'])
+        depends=['template', 'active'])
     party = fields.Many2One('party.party', 'Supplier', required=True,
         ondelete='CASCADE', select=True)
     name = fields.Char('Name', size=None, translate=True, select=True)
diff -r 8b4371e8828a -r 4fc449934f98 view/product_supplier_form.xml
--- a/view/product_supplier_form.xml    Fri Dec 25 17:14:57 2020 +0100
+++ b/view/product_supplier_form.xml    Sun Jan 17 01:24:33 2021 +0100
@@ -8,8 +8,12 @@
     <field name="product" colspan="3"/>
     <label name="party"/>
     <field name="party"/>
-    <label name="sequence"/>
-    <field name="sequence"/>
+    <group id="sequence-active" col="-1" colspan="2">
+        <label name="sequence"/>
+        <field name="sequence"/>
+        <label name="active"/>
+        <field name="active"/>
+    </group>
     <label name="name"/>
     <field name="name"/>
     <label name="code"/>

Reply via email to