diff --git a/book.py b/book.py
index 98371c7..3a9b64a 100644
--- a/book.py
+++ b/book.py
@@ -3,14 +3,14 @@
# The COPYRIGHT file at the top level of this repository contains the
# full copyright notices and license terms.
-from trytond.model import fields
+from trytond.model import fields, SymbolMixin
from trytond.exceptions import UserError
from trytond.pool import PoolMeta
from trytond.pyson import Eval, Or, Len
from trytond.modules.cashbook.book import STATES2, DEPENDS2
-class Book(metaclass=PoolMeta):
+class Book(SymbolMixin, metaclass=PoolMeta):
__name__ = 'cashbook.book'
asset = fields.Many2One(string='Asset',
@@ -53,6 +53,8 @@ class Book(metaclass=PoolMeta):
Len(Eval('lines')) > 0,
),
}, depends=DEPENDS2+['feature', 'lines', 'asset_uomcat'])
+ symbol = fields.Function(fields.Char(string='Symbol', readonly=True),
+ 'on_change_with_symbol')
@fields.depends('asset', 'quantity_uom')
def on_change_asset(self):
@@ -67,6 +69,15 @@ class Book(metaclass=PoolMeta):
"""
return 4
+ @fields.depends('quantity_uom', 'currency')
+ def on_change_with_symbol(self, name=None):
+ """ get symbol for asset
+ """
+ return '%(currency)s/%(unit)s' % {
+ 'currency': getattr(self.currency, 'symbol', '-'),
+ 'unit': getattr(self.quantity_uom, 'symbol', '-'),
+ }
+
@fields.depends('asset', '_parent_asset.uom')
def on_change_with_asset_uomcat(self, name=None):
""" get uom-category of asset
diff --git a/line.py b/line.py
index 9fbdab6..88b5964 100644
--- a/line.py
+++ b/line.py
@@ -28,14 +28,14 @@ class Line(metaclass=PoolMeta):
'on_change_with_quantity_digits')
quantity_uom = fields.Function(fields.Many2One(string='Symbol',
readonly=True, model_name='product.uom'),
- 'on_change_with_quantity_symbol')
+ 'on_change_with_quantity_uom')
asset_rate = fields.Function(fields.Numeric(string='Rate',
readonly=True,
digits=(16, If(
Eval('currency_digits', 2) > Eval('quantity_digits', 2),
- Eval('currency_digits', 2), Eval('quantity_digits', 2)))),
+ Eval('currency_digits', 2), Eval('quantity_digits', 2))),
+ depends=['currency_digits', 'quantity_digits']),
'on_change_with_asset_rate')
- #asset_ratesymbol = fields.
@fields.depends('quantity', 'amount', 'currency_digits', 'quantity_digits')
def on_change_with_asset_rate(self, name=None):
@@ -52,8 +52,8 @@ class Line(metaclass=PoolMeta):
).quantize(Decimal(str(1/10**digit)))
@fields.depends('cashbook', '_parent_cashbook.quantity_uom')
- def on_change_with_quantity_symbol(self, name=None):
- """ get quantity-symbol of asset
+ def on_change_with_quantity_uom(self, name=None):
+ """ get quantity-unit of asset
"""
if self.cashbook:
return self.cashbook.quantity_uom.id
diff --git a/locale/de.po b/locale/de.po
index 2175463..ada411c 100644
--- a/locale/de.po
+++ b/locale/de.po
@@ -38,6 +38,10 @@ msgctxt "help:cashbook.book,quantity_uom:"
msgid "UOM"
msgstr "Einheit"
+msgctxt "field:cashbook.book,symbol:"
+msgid "Symbol"
+msgstr "Symbol"
+
#################
# cashbook.line #
diff --git a/locale/en.po b/locale/en.po
index ff8880b..9501c48 100644
--- a/locale/en.po
+++ b/locale/en.po
@@ -30,6 +30,10 @@ msgctxt "help:cashbook.book,quantity_uom:"
msgid "UOM"
msgstr "UOM"
+msgctxt "field:cashbook.book,symbol:"
+msgid "Symbol"
+msgstr "Symbol"
+
msgctxt "field:cashbook.line,quantity_digits:"
msgid "Digits"
msgstr "Digits"
diff --git a/tests/test_book.py b/tests/test_book.py
index 660de27..c8899a7 100644
--- a/tests/test_book.py
+++ b/tests/test_book.py
@@ -104,7 +104,8 @@ class CbInvTestCase(CashbookTestCase, InvestmentTestCase):
self.assertEqual(book.lines[0].amount, Decimal('2.5'))
self.assertEqual(book.lines[0].quantity, Decimal('1.453'))
self.assertEqual(book.lines[0].quantity_digits, 3)
- self.assertEqual(book.lines[0].quantity_symbol, 'u')
+ self.assertEqual(book.lines[0].quantity_uom.symbol, 'u')
+ self.assertEqual(book.symbol, 'usd/u')
@with_transaction()
def test_assetbook_book_uom(self):
diff --git a/view/line_form.xml b/view/line_form.xml
index 97e9d0b..a135d0b 100644
--- a/view/line_form.xml
+++ b/view/line_form.xml
@@ -8,12 +8,7 @@ full copyright notices and license terms. -->
-
-
-
-
-
-
+