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
