From 87a98018d54cf4dcb5f327fbeb2384c40410fcab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Tue, 26 Aug 2008 18:34:14 +0200 Subject: [PATCH] Add unit_digits and use it --- invoice.odt | Bin 9706 -> 9713 bytes invoice.py | 18 ++++++++++++++++++ invoice.xml | 3 +++ 3 files changed, 21 insertions(+) diff --git a/invoice.odt b/invoice.odt index d5f8c4c2c62e4e8f46c4fe386695676931d45e88..e7ff20cb22677cb1af660704ea73b56f4ea34cf9 100644 GIT binary patch delta 3541 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 S1S1b&z~FeO2#Yx`nEwGG8jg(s diff --git a/invoice.py b/invoice.py index 066302c019..1f5a65be6d 100644 --- a/invoice.py +++ b/invoice.py @@ -1243,6 +1243,7 @@ class InvoiceLine(OSV): ('comment', 'Comment'), ], 'Type', select=1, required=True) quantity = fields.Float('Quantity', + digits="(16, unit_digits)", states={ 'invisible': "type != 'line'", 'required': "type == 'line'", @@ -1252,6 +1253,8 @@ class InvoiceLine(OSV): 'required': "product", 'invisible': "type != 'line'", }, domain="[('category', '=', (product, 'product'))]") + unit_digits = fields.Function('get_unit_digits', type='integer', + string='Unit Digits', on_change_with=['unit']) product = fields.Many2One('product.product', 'Product', states={ 'invisible': "type != 'line'", @@ -1329,6 +1332,21 @@ class InvoiceLine(OSV): (vals.get('unit_price') or Decimal('0.0'))) return Decimal('0.0') + def on_change_with_unit_digits(self, cursor, user, ids, vals, + context=None): + uom_obj = self.pool.get('product.uom') + if vals.get('unit'): + uom = uom_obj.browse(cursor, user, vals['unit'], + context=context) + return uom.digits + return 2 + + def get_unit_digits(self, cursor, user, ids, name, arg, context=None): + res = {} + for line in self.browse(cursor, user, ids, context=context): + res[line.id] = line.unit.digits + return res + def get_amount(self, cursor, user, ids, name, arg, context=None): currency_obj = self.pool.get('currency.currency') res = {} diff --git a/invoice.xml b/invoice.xml index c70f371b9d..505e0ef0cb 100644 --- a/invoice.xml +++ b/invoice.xml @@ -199,6 +199,7 @@ + @@ -529,6 +530,7 @@ + ]]> @@ -549,6 +551,7 @@ + ]]>