Reviewers: ,


Please review this at http://codereview.tryton.org/306001/

Affected files:
  M invoice.py


Index: invoice.py
===================================================================
--- a/invoice.py
+++ b/invoice.py
@@ -1380,6 +1380,7 @@
             'invisible': Eval('type') != 'line',
             'required': Eval('type') == 'line',
             },
+        on_change_with=['unit_price', 'unit', 'product'],
         depends=['type'])
     amount = fields.Function(fields.Numeric('Amount',
             digits=(16, Eval('_parent_invoice', {}).get('currency_digits',
@@ -1387,7 +1388,7 @@
             states={
                 'invisible': ~Eval('type').in_(['line', 'subtotal']),
                 },
-            on_change_with=['type', 'quantity', 'unit_price',
+            on_change_with=['type', 'quantity', 'unit_price', 'unit',
                 '_parent_invoice.currency', 'currency'],
             depends=['type', 'currency_digits']), 'get_amount')
     description = fields.Text('Description', size=None, required=True)
@@ -1504,6 +1505,18 @@
             return amount
         return Decimal('0.0')

+    def on_change_with_unit_price(self, vals):
+        pool = Pool()
+        uom_obj = pool.get('product.uom')
+        product_obj = pool.get('product.product')
+        if vals.get('product') and vals.get('unit'):
+            unit = uom_obj.browse(vals['unit'])
+            product = product_obj.browse(vals['product'])
+            return uom_obj.compute_price(product.default_uom,
+                    product.list_price, unit)
+        return vals['unit_price']
+
+
     def on_change_with_unit_digits(self, vals):
         uom_obj = Pool().get('product.uom')
         if vals.get('unit'):


--
[email protected] mailing list

Reply via email to