line: Einheit für Anzahl, book: symbol für Asset + tests
This commit is contained in:
parent
70416dbc12
commit
71aa1de06f
6 changed files with 29 additions and 14 deletions
15
book.py
15
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
|
||||
|
|
10
line.py
10
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
|
||||
|
|
|
@ -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 #
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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):
|
||||
|
|
|
@ -8,12 +8,7 @@ full copyright notices and license terms. -->
|
|||
<label name="quantity" />
|
||||
<field name="quantity" symbol="quantity_uom"/>
|
||||
<label name="asset_rate"/>
|
||||
<!--<field name="asset_rate"/>-->
|
||||
|
||||
<group id="asset_rate" col="2">
|
||||
<field name="asset_rate" xexpand="0"/>
|
||||
<field name="number" xalign="0.0" xexpand="0"/>
|
||||
</group>
|
||||
<field name="asset_rate" symbol="cashbook"/>
|
||||
|
||||
<field name="quantity_digits"/>
|
||||
<newline/>
|
||||
|
|
Loading…
Reference in a new issue