changeset e37ed7d8afa8 in modules/purchase_requisition:default
details: 
https://hg.tryton.org/modules/purchase_requisition?cmd=changeset;node=e37ed7d8afa8
description:
        Add secondary unit

        issue8239
        review271131003
diffstat:

 CHANGELOG   |   1 +
 purchase.py |  28 ++++++++--------------------
 2 files changed, 9 insertions(+), 20 deletions(-)

diffs (62 lines):

diff -r d0ded81a618b -r e37ed7d8afa8 CHANGELOG
--- a/CHANGELOG Mon May 20 17:29:12 2019 +0200
+++ b/CHANGELOG Sun Jul 28 14:34:20 2019 +0200
@@ -1,3 +1,4 @@
+* Remove domain constraint on unit
 * Use processing delay to process approved requisition
 * Allow reset to draft approved but not processed requisition
 
diff -r d0ded81a618b -r e37ed7d8afa8 purchase.py
--- a/purchase.py       Mon May 20 17:29:12 2019 +0200
+++ b/purchase.py       Sun Jul 28 14:34:20 2019 +0200
@@ -439,17 +439,9 @@
             'required': Bool(Eval('product')),
             'readonly': _states['readonly'],
             },
-        domain=[
-            If(Bool(Eval('product_uom_category')),
-                ('category', '=', Eval('product_uom_category')),
-                ('category', '!=', -1)),
-        ],
-        depends=['product', 'product_uom_category'] + _depends)
+        depends=['product'] + _depends)
     unit_digits = fields.Function(
         fields.Integer('Unit Digits'), 'on_change_with_unit_digits')
-    product_uom_category = fields.Function(
-        fields.Many2One('product.uom.category', 'Product Uom Category'),
-        'on_change_with_product_uom_category')
     unit_price = fields.Numeric(
         'Unit Price', digits=price_digits, states=_states, depends=_depends)
     amount = fields.Function(
@@ -490,11 +482,6 @@
             amount = self.requisition.currency.round(amount)
         return amount
 
-    @fields.depends('product')
-    def on_change_with_product_uom_category(self, name=None):
-        if self.product:
-            return self.product.default_uom_category.id
-
     @fields.depends('unit')
     def on_change_with_unit_digits(self, name=None):
         if self.unit:
@@ -523,12 +510,13 @@
             supplier = self.supplier
             # TODO compute purchase_date for product_supplier
 
-        if self.product:
-            uom = self.product.purchase_uom or self.product.default_uom
-            quantity = Uom.compute_qty(self.unit, self.quantity, uom)
-        else:
-            uom = self.unit
-            quantity = self.quantity
+        uom = self.unit
+        quantity = self.quantity
+        if (self.product
+                and self.product.purchase_uom.category == self.unit.category):
+            uom = self.product.purchase_uom
+            quantity = Uom.compute_qty(self.unit, self.quantity,
+                uom, round=True)
 
         return Request(
             product=self.product,

Reply via email to