changeset d7096697e4f6 in modules/purchase:default
details: https://hg.tryton.org/modules/purchase?cmd=changeset&node=d7096697e4f6
description:
        Require warehouse on quotation for kit product

        issue10693
        review346971002
diffstat:

 message.xml |  2 +-
 purchase.py |  8 +++++++-
 2 files changed, 8 insertions(+), 2 deletions(-)

diffs (37 lines):

diff -r 00702ac99acc -r d7096697e4f6 message.xml
--- a/message.xml       Mon Sep 13 23:29:56 2021 +0200
+++ b/message.xml       Sat Oct 02 15:36:39 2021 +0200
@@ -10,7 +10,7 @@
             <field name="text">You cannot erase party "%(party)s" while they 
have pending purchases with company "%(company)s".</field>
         </record>
         <record model="ir.message" id="msg_warehouse_required_for_quotation">
-            <field name="text">To get a quote for the purchase "%(purchase)s" 
of goods or assets, you must enter a warehouse.</field>
+            <field name="text">To get a quote for the purchase "%(purchase)s" 
you must enter a warehouse.</field>
         </record>
         <record model="ir.message" id="msg_purchase_delete_cancel">
             <field name="text">To delete purchase "%(purchase)s" you must 
cancel it.</field>
diff -r 00702ac99acc -r d7096697e4f6 purchase.py
--- a/purchase.py       Mon Sep 13 23:29:56 2021 +0200
+++ b/purchase.py       Sat Oct 02 15:36:39 2021 +0200
@@ -723,7 +723,7 @@
         for line in self.lines:
             if (not line.to_location
                     and line.product
-                    and line.product.type in ('goods', 'assets')):
+                    and line.product.type in line.get_move_product_types()):
                 raise PurchaseQuotationError(
                     gettext('purchase.msg_warehouse_required_for_quotation',
                         purchase=self.rec_name))
@@ -1179,6 +1179,12 @@
         'on_change_with_currency')
 
     @classmethod
+    def get_move_product_types(cls):
+        pool = Pool()
+        Move = pool.get('stock.move')
+        return Move.get_product_types()
+
+    @classmethod
     def __setup__(cls):
         super().__setup__()
         cls.__access__.add('purchase')

Reply via email to